sql >> Database teknologi >  >> RDS >> Mysql

AUTO_INCREMENT og LAST_INSERT_ID

SELECT max(employeeid) FROM Employee;

Ovenstående forespørgsel returnerer værdien af ​​employeeid af sidst indsatte post i medarbejdertabellen, fordi medarbejder-id er en kolonne med automatisk stigning. Det ser ud til at være i orden, men antag to tråde udfører indsættelsesoperation samtidigt, er der en chance for, at du får forkert id for sidst indsatte post!

Bare rolig, MySQL har en funktion, som returnerer værdien af ​​kolonnen med automatisk stigning i den sidst indsatte post.

SELECT LAST_INSERT_ID();

LAST_INSERT_ID() er altid forbindelsesspecifik , dette betyder, at selvom indsættelsesoperationen udføres samtidigt fra forskellige forbindelser, returnerer den altid værdien af ​​den aktuelle forbindelsesspecifikke operation.

Så du skal først indsætte post i medarbejdertabel, køre ovenstående forespørgsel for at få id-værdien og bruge denne til at indsætte i anden tabel.



  1. Send flere værdier i en enkelt parameter

  2. Kør MySQLDump uden at låse tabeller

  3. Hvordan opretter man en SQL-visning med SQLAlchemy?

  4. Sådan planlægges en lagret procedure i MySQL