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

Pobieranie ostatnio wstawionych identyfikatorów dla wielu wierszy

Wywołanie last_insert_id() daje identyfikator PIERWSZEGO wiersza wstawionego do ostatniej partii. Wszystkie inne wstawione są gwarantowane jako sekwencyjne.

O ile nie robisz czegoś bardzo dziwnego, pozwala to na łatwe obliczenie identyfikatora każdego wiersza.

W rzeczywistości zachowanie różni się w 5.1 w zależności od ustawienia parametru trybu automatycznego przyrostu innodb; to nie powinno mieć znaczenia. Dopóki nie zmienisz tego z domyślnego, zobaczysz oczekiwane zachowanie.

Zdarzają się sporadyczne przypadki, w których nie działa to zgodnie z oczekiwaniami i jest nieprzydatne — na przykład, gdy wykonujesz AKTUALIZACJĘ NA ZDUPLIKOWANYM kluczu lub INSERT IGNORE. W takich przypadkach będziesz musiał zrobić coś innego, aby wypracować identyfikatory każdego wiersza.

Ale w przypadku zwykłej waniliowej partii INSERT, bez wartości określonych dla kolumny auto-inc, jest to łatwe.

Pełny opis tego, jak automatyczne przyrosty obsługiwane w innodb jest tutaj



  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ć wiersze tabeli z bazy danych (php)

  2. MySQL - Jak wybrać wiersze, w których znajduje się wartość w tablicy?

  3. Hibernacja strategii nazewnictwa zmieniającej nazwy tabel

  4. MYSQL - Nie można utworzyć zewnętrznego klucza

  5. Utwórz ROLLING sumę w okresie czasu w mysql