在 MySQL 中检索最后插入的 ID 以进行多表插入
在处理多个数据库表时,通常需要检索最后插入的 ID插入多个表后的ID。一个常见的场景是从第一个表中检索最后插入的 ID,即使后续插入是到其他表中的。
考虑以下 SQL 查询:
INSERT INTO table1 (title,userid) VALUES ('test',1); INSERT INTO table2 (parentid,otherid,userid) VALUES (LAST_INSERT_ID(), 4, 1); SELECT LAST_INSERT_ID();
默认情况下,LAST_INSERT_ID( )将返回最近表插入的最后插入的 ID,在本例中为 table2。要从 table1 中检索最后插入的 ID,有几种方法可用:
将最后插入的 ID 存储在变量中:
将值插入 table1 并存储变量中最后插入的 ID:
SET @last_id_in_table1 = LAST_INSERT_ID();
后续插入其他表不会影响该变量,从而允许稍后引用插入到 table1 的最后一个 ID。
检索最大 ID:
另一种方法是在插入后从 table1 中查找最大 ID :
SELECT MAX(id) FROM table1;
这将返回最后插入的 ID,即使已将其他表插入到
注意: 检索最大 ID 时,考虑潜在的竞争条件非常重要。如果另一个进程或连接同时向 table1 中插入值,则检索到的最大 ID 可能无法准确反映最后插入的值。
以上是MySQL多表插入后如何获取最后插入的ID?的详细内容。更多信息请关注PHP中文网其他相关文章!