问题描述
我有一个 MySQL 问题,我认为它一定很简单.当我运行以下 MySql 查询时,我需要从 table1 返回 LAST INSERTED ID:
I have a MySQL question that I think must be quite easy. I need to return the LAST INSERTED ID from table1 when I run the following MySql query:
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?
As you can understand the current code will just return the LAST INSERT ID of table2 instead of table1, how can I get the id from table1 even if I insert into table2 between?
推荐答案
您可以将最后一个插入 id 存储在一个变量中:
You could store the last insert id in a variable :
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 时竞争条件可能导致的错误)
Or get the max id from table1 ( Warning. See note in comments from Rob Starling about possible errors from race conditions when using the max 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 在
(Warning: as Rob Starling points out in the
这篇关于LAST_INSERT_ID() MySQL的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持跟版网!


大气响应式网络建站服务公司织梦模板
高端大气html5设计公司网站源码
织梦dede网页模板下载素材销售下载站平台(带会员中心带筛选)
财税代理公司注册代理记账网站织梦模板(带手机端)
成人高考自考在职研究生教育机构网站源码(带手机端)
高端HTML5响应式企业集团通用类网站织梦模板(自适应手机端)