Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Dokonaj automatycznego przyrostu, wypełniając poprzednio usunięty numer

Nie chcesz wtedy używać kolumny z automatycznym przyrostem. Jeśli chcesz wypełnić luki, ustaw ją na kolumnę int i obsługuj logikę w przechowywanej procedurze lub wstawce.

EDYTUJ:

Ponieważ jest to kolumna int, możesz je uporządkować numerycznie. Po prostu wykonaj SELECT Ids FROM Table Order By Ids aby uzyskać wszystkie identyfikatory i sprawdzić luki w zwróconym zestawie danych.

Prawdopodobnie istnieje bardziej płynny sposób na zrobienie tego, ale możesz zapętlić wyniki za pomocą kursora i porównać z INT zmienna, która zwiększa się w całej pętli. Kiedy znajdziesz lukę (brak dopasowania) - przerwij pętlę i użyj tego INT wartość jako INSERT ID.

Nie napiszę za ciebie twojego kodu, ale to kilka kroków, które pomogą ci iść we właściwym kierunku. Powinna to być naprawdę podstawowa część programowania, z którą powinieneś sobie poradzić.

Mam nadzieję, że to pomoże.

EDYCJA #2:

Jak zauważyli inni, najlepszym posunięciem jest pozostawienie luk. O ile na stole nie ma czapki, jeśli chodzi o długość, a identyfikatory MUSZĄ wynosić 1-30 (dziwne), zostaw to w spokoju. Nie ma żadnych korzyści z wypełniania luk.

EDYCJA #3:

Jeszcze jedna rzecz do rozważenia:jeśli naprawdę musisz z jakiegoś powodu zachować 1-30, nie usuwaj swoich wierszy. Dodaj kolumnę, aby oznaczyć każdy wiersz jako aktywny lub nie, a następnie zaktualizuj wiersze, które są nieaktywne, gdy zajdzie taka potrzeba, a następnie oznacz je jako aktywne. To BARDZO dziwaczne, ale twoje wymagania są trochę dziwaczne, więc...



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak połączyć się z Amazon RDS przez SSL?

  2. Sprawdzasz tabelę pod kątem nakładania się czasu?

  3. Aktualizacja SQL z tabeli losowych imion

  4. Obejście MySQL Wyszukiwanie pełnotekstowe dla tabel innoDB

  5. Aktualizowanie już zaznaczonych pól wyboru w PHP