Věřím, že odpověď na toto je řešena v MySQL dokumenty :
Pokud tabulka obsahuje AUTO_INCREMENT
a INSERT
... UPDATE
vloží řádek, LAST_INSERT_ID()
funkce vrací AUTO_INCREMENT
hodnota. Pokud příkaz místo toho aktualizuje řádek, LAST_INSERT_ID()
není smysluplné. Můžete to však obejít pomocí LAST_INSERT_ID(expr)
. Předpokládejme, že id je AUTO_INCREMENT
sloupec. Chcete-li vytvořit LAST_INSERT_ID()
smysluplné pro aktualizace, vložte řádky následovně:
INSERT INTO table (a,b,c) VALUES (1,2,3)
ON DUPLICATE KEY UPDATE id=LAST_INSERT_ID(id), c=3;