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

MySQL - auto dekrementacja wartości

Nie powinieneś tego robić.
Nie używaj automatycznie zwiększanego unikalnego identyfikatora jako liczba porządkowa.
Słowo „unikalny” oznacza, że ​​identyfikator powinien być przyklejony do swojego wiersza na zawsze .

Nie ma związku między tymi liczbami a wyliczaniem.
Wyobraź sobie, że chcesz wybrać rekordy w kolejności alfabetycznej. Dokąd poszły twoje cenne liczby? Baza danych nie przypomina uporządkowanej listy, jak prawdopodobnie myślisz. Nie jest to plik płaski z wierszami przechowywanymi w określonej kolejności. Ma zupełnie inną ideologię. Wiersze w bazie danych nie mają żadnego porządku. I zostanie zamówiony tylko w wybranym czasie, jeśli został jawnie ustawiony przez ORDER BY klauzula.
Ponadto baza danych powinna wykonać dla Ciebie wyszukiwanie. Możesz więc powiedzieć, że przy filtrowanych wierszach lub innej kolejności ta liczba automatycznego zwiększania nie będzie miała absolutnie nic wspólnego z rzeczywistymi pozycjami wierszy.

Jeśli chcesz wyliczyć dane wyjściowe - to zadanie warstwy prezentacji. Po prostu dodaj licznik po stronie PHP.

I znowu:te liczby mają identyfikować pewien rekord. Jeśli zmienisz ten numer, już nigdy nie znajdziesz swojego rekordu.

Weźmy na przykład tę samą witrynę. Stack Overflow identyfikuje swoje pytania z taką liczbą:

Wyobraź sobie, że zapisałeś ten adres strony w zakładce. Teraz pojawia się Jeff i zmienia numerację całej bazy danych. Naciskasz zakładkę i lądujesz na innym pytaniu. Cała strona stałaby się strasznym bałaganem.

Pamiętaj:zmiana numeracji unikalnych identyfikatorów jest zła!



  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 wyświetlić obraz z mysql blob

  2. Zapytanie, gdy parametr nie ma wartości django

  3. błąd mySQL:#1248 - Każda tabela pochodna musi mieć swój własny alias

  4. Mysql Jak wybrać tylko z kolumny, jeśli kolumna istnieje?

  5. MySQL:Policz rekordy z jednej tabeli, a następnie zaktualizuj inną