sql >> Databasteknik >  >> RDS >> Mysql

AUTO_INCREMENT och LAST_INSERT_ID

SELECT max(employeeid) FROM Employee;

Ovanstående fråga returnerar värdet på anställd av senast infogade post i Employee-tabellen eftersom employeeid är en kolumn för automatisk ökning. Det här verkar vara OK, men anta två trådar kör insert operation samtidigt, finns det en chans att du får fel id för senast infogade post!

Oroa dig inte, MySQL tillhandahåller en funktion som returnerar värdet på kolumnen för automatisk ökning av den senast infogade posten.

SELECT LAST_INSERT_ID();

LAST_INSERT_ID() är alltid anslutningsspecifik , detta innebär att även om insättningsoperationen utförs samtidigt från olika anslutningar, returnerar den alltid värdet för aktuell anslutningsspecifik operation.

Så du måste först infoga posten i Employee-tabellen, köra ovanstående fråga för att få id-värdet och använda detta för att infoga i den andra tabellen.



  1. Är GUID-kollisioner möjliga?

  2. validera ålder innan du registrerar en användare för att kontrollera om han är över en viss ålder med hjälp av mvc

  3. Flera relationer mellan två enheter, är detta bra praxis?

  4. Stort .patch_storage