SELECT max(employeeid) FROM Employee;
Výše uvedený dotaz vrací hodnotu employeeid
posledního vloženého záznamu v tabulce Zaměstnanci, protože employeeid
je sloupec automatického přírůstku. To se zdá být v pořádku, ale předpokládejme dvě vlákna současně provádějí operaci vložení, existuje možnost, že zadáte špatné ID posledního vloženého záznamu!
Nebojte se, MySQL poskytuje funkci, která vrací hodnotu sloupce automatického přírůstku posledního vloženého záznamu.
SELECT LAST_INSERT_ID();
LAST_INSERT_ID()
je vždy specifická pro připojení , to znamená, že i když je operace vkládání provedena současně z různých připojení, vždy vrací hodnotu aktuální operace specifické pro připojení.
Takže musíte nejprve vložit záznam do tabulky Zaměstnanec, spustit výše uvedený dotaz pro získání hodnoty id a použít ji k vložení do druhé tabulky.