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

MySQL ON DUPLICATE KEY - id ostatniego wstawienia?

Sprawdź tę stronę:https://web. archive.org/web/20150329004325/https://dev.mysql.com/doc/refman/5.0/en/insert-on-duplicate.html
Na dole strony wyjaśniają, w jaki sposób można nadać LAST_INSERT_ID znaczenie dla aktualizacji, przekazując wyrażenie do tej funkcji MySQL.

Z przykładu dokumentacji MySQL:

Jeśli tabela zawiera kolumnę AUTO_INCREMENT i INSERT ... UPDATE wstawia wiersz, funkcja LAST_INSERT_ID() zwraca wartość AUTO_INCREMENT. Jeśli zamiast tego instrukcja aktualizuje wiersz, LAST_INSERT_ID() nie ma znaczenia. Możesz jednak obejść ten problem, używając LAST_INSERT_ID(expr). Załóżmy, że identyfikator to kolumna AUTO_INCREMENT. Aby LAST_INSERT_ID() miał znaczenie dla aktualizacji, wstaw wiersze w następujący sposób:

INSERT INTO table (a,b,c) VALUES (1,2,3)
  ON DUPLICATE KEY UPDATE id=LAST_INSERT_ID(id), c=3;


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Szybko zbuduj interfejs PHP CRUD za pomocą zaawansowanego narzędzia generatora CRUD PDO

  2. Wybierz zapytanie mysql między datą?

  3. Różnica między SELECT INTO i INSERT INTO w MySQL

  4. MySQL DOŁĄCZYĆ tylko do najnowszego wiersza?

  5. Laravel:połącz się z bazami danych dynamicznie