Ja. Du kan inte ha flera fält för automatisk ökning i en enda tabell.
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()
returnerar endast värdet för en kolumn som deklareras AUTO_INCREMENT
. Det finns ingen funktion för att returnera värdet i en sammansatt primärnyckel som inte var som genereras av systemet. Du borde veta det värdet redan, eftersom du precis gav det i en INSERT
påstående. Det knepiga fallet skulle vara när en trigger eller något åsidosätter värdet.