gpt4 book ai didi

mysql - LAST_INSERT_ID() MySQL

转载 作者:IT老高 更新时间:2023-10-28 12:49:47 28 4
gpt4 key购买 nike

我有一个 MySQL 问题,我认为这一定很简单。当我运行以下 MySql 查询时,我需要从 table1 返回 LAST INSERTED ID:

INSERT INTO table1 (title,userid) VALUES ('test',1); 
INSERT INTO table2 (parentid,otherid,userid) VALUES (LAST_INSERT_ID(),4,1);
SELECT LAST_INSERT_ID();

正如您所理解的,当前代码只会返回 table2 的 LAST INSERT ID 而不是 table1,即使我在 table2 之间插入,我如何才能从 table1 中获取 id?

最佳答案

您可以将最后一个插入 id 存储在一个变量中:

INSERT INTO table1 (title,userid) VALUES ('test', 1); 
SET @last_id_in_table1 = LAST_INSERT_ID();
INSERT INTO table2 (parentid,otherid,userid) VALUES (@last_id_in_table1, 4, 1);

或者从 table1 获取最大 ID(编辑:警告。请参阅 Rob Starling 的评论中的注释,了解使用最大 ID 时竞争条件可能导致的错误)

INSERT INTO table1 (title,userid) VALUES ('test', 1); 
INSERT INTO table2 (parentid,otherid,userid) VALUES (LAST_INSERT_ID(), 4, 1);
SELECT MAX(id) FROM table1;

(警告:正如 Rob Starling 在评论中指出的那样)

关于mysql - LAST_INSERT_ID() MySQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3837990/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com