sql >> Databasteknik >  >> RDS >> Mysql

Kan du lita på mysql_insert_id?

Ja, det kan du.

Funktionen är per-session, men den är också endast giltig för den allra sista frågan.

Det vill säga, du kommer aldrig att ha en användare som "förorenar" det sista_insert_id för en annan, men du kan inte återställa ett insert_id från två inlägg sedan. När du behöver göra flera insättningar i rad och inte behöver ID:n förrän senare, ställ in dem som variabler:

INSERT INTO ...
SET @foo_id = LAST_INSERT_ID();
INSERT INTO ...
SET @bar_id = LAST_INSERT_ID();
INSERT INTO some_join_table VALUES (@foo_id, @bar_id);



  1. ON CONVERSION ERROR misslyckas med ORA-43918:Detta argument måste vara bokstavligt

  2. Ställa in korrekt innodb_log_file_size i mysql

  3. AVG + Inner join

  4. sql join på två fält i en tabell