Ja. Du kan ikke have flere automatiske inkrementeringsfelter i en enkelt tabel.
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()
returnerer kun værdien for en kolonne erklæret AUTO_INCREMENT
. Der er ingen funktion til at returnere værdien i en sammensat primærnøgle, som ikke var genereret af systemet. Du burde allerede kende den værdi, da du lige har givet den i en INSERT
udmelding. Det vanskelige tilfælde ville være, når en trigger eller noget tilsidesætter værdien.