Ja. U kunt niet meerdere velden voor automatisch ophogen in één tabel hebben.
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()
geeft alleen de waarde terug voor een kolom die is gedeclareerd AUTO_INCREMENT
. Er is geen functie om de waarde terug te geven in een samengestelde primaire sleutel die niet was gegenereerd door het systeem. Je zou die waarde al moeten weten, aangezien je hem zojuist in een INSERT
. hebt gegeven uitspraak. Het lastige geval zou zijn wanneer een trigger of iets de waarde overschrijft.