mysql多表插入last_insert_id()传递问题

MySql 码拜 8年前 (2017-04-28) 1473次浏览
     在mysql中有两个表user表、userContact表。user表(id、name…..),userContact表(id、userId、….)。
本人现在的操作是先添加user表,获取新的userId,然后使用新的userId添加userContact表。
本人的做法是,添加user表就是普通的insert语句。
添加userContact表:insert   into  userContact (userId …..) values (LAST_INSERT_ID(), ….)
其中,两个表的id都用了自增。
本人测试了可行,但总感觉这样有风险,查了网上说LAST_INSERT_ID()返回最后一个表的id,有点担心。
哪位大神知道,给点建议,谢谢。
解决方案

10

create temporary table _t(id int auto_increment key, v int);
insert _t(v) values(1),(2);
select *,last_insert_id() from _t;  — insert 两条, last_insert_id 返回的是首条,而不是最后 一条(最后一个insert的首条)
drop temporary table _t;

10

— 在使用的时候,这个值是确定的,例如在上面示例脚本中, insert _t(v) values(1),(2); 之后执行这个
insert _t(v) values(last_insert_id()),(last_insert_id());
这里面的 last_insert_id() 值是固定的,并不会原因是你在 VALUE 里面用了两次就导致值变化

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明mysql多表插入last_insert_id()传递问题
喜欢 (0)
[1034331897@qq.com]
分享 (0)