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

MySQL SELECT LAST_INSERT_ID() dla klucza złożonego. Czy to możliwe?

Tak. Nie możesz mieć wielu pól automatycznego zwiększania w jednej tabeli.

CREATE TABLE foo (
  id1 int(11) NOT NULL auto_increment,
  id2 int(11) NOT NULL default '0',
  PRIMARY KEY  (id1, id2)
);

INSERT INTO foo VALUES (DEFAULT, 2);

SELECT LAST_INSERT_ID(); -- returns 1, the value generated for id1

LAST_INSERT_ID() zwraca wartość tylko dla kolumny zadeklarowanej AUTO_INCREMENT . Nie ma funkcji zwracającej wartość w złożonym kluczu podstawowym, której nie było generowane przez system. Powinieneś już znać tę wartość, ponieważ właśnie podałeś ją w INSERT oświadczenie. Trudnym przypadkiem jest sytuacja, w której wyzwalacz lub coś nadpisuje wartość.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jaka jest lokalizacja klienta mysql .my.cnf w XAMPP dla Windows?

  2. Jak uzyskać nazwy kolumn wraz z wynikami w php/mysql?

  3. Jak zabezpieczyć klaster Galera — 8 wskazówek

  4. Importuj plik CSV bezpośrednio do MySQL

  5. nieznana baza danych w jdbc