sql >> Databáze >  >> RDS >> Mysql

MySQL SELECT LAST_INSERT_ID() pro složený klíč. Je to možné?

Ano. V jedné tabulce nemůžete mít více polí s automatickým přírůstkem.

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() vrátí hodnotu pouze pro sloupec deklarovaný AUTO_INCREMENT . Neexistuje žádná funkce, která by vrátila hodnotu ve složeném primárním klíči, která nebyla generované systémem. Tuto hodnotu byste již měli znát, protože jste ji právě zadali v INSERT prohlášení. Ošemetný případ by byl, když spouštěč nebo něco přepíše hodnotu.




  1. Upozornění:mysqli::mysqli():(HY000/1045):Přístup odepřen uživateli 'database'@'localhost' (s použitím hesla:NE) v

  2. Počet řádků ovlivněných UPDATE v PL/SQL

  3. Autentizační plugin 'caching_sha2_password' nelze načíst

  4. MySQL Pořadí podle čísla, Null poslední