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.