SELECT max(employeeid) FROM Employee;
De bovenstaande query retourneert de waarde van employeeid
van laatst ingevoegde record in werknemerstabel omdat employeeid
is een auto-increment kolom. Dit lijkt in orde, maar stel twee threads tegelijkertijd de invoegbewerking uitvoert, bestaat de kans dat u het verkeerde ID van het laatst ingevoegde record krijgt!
Maak je geen zorgen, MySQL biedt een functie die de waarde van de auto-increment-kolom van het laatst ingevoegde record retourneert.
SELECT LAST_INSERT_ID();
LAST_INSERT_ID()
is altijd verbindingsspecifiek , dit betekent dat zelfs als de invoegbewerking tegelijkertijd wordt uitgevoerd vanaf verschillende verbindingen, het altijd de waarde van de huidige verbindingsspecifieke bewerking retourneert.
U moet dus eerst een record in de werknemerstabel invoegen, de bovenstaande query uitvoeren om de id-waarde te krijgen en deze gebruiken om in de tweede tabel in te voegen.