gpt4 book ai didi

Mysql Insert get ID 然后插入返回的Id

转载 作者:搜寻专家 更新时间:2023-10-30 20:55:02 25 4
gpt4 key购买 nike

当执行多条MySQl语句时,有没有办法可以得到最后插入的id,然后插入到另一个表中?例如,如果主键是我第二个表中的外键。

表一

user_id | username|
-------------------
1 |userone
2 |usertwo
3 |userthree

表2

contact_id | user_id | contact_name
------------------------------------
12 | 1 | John Doe
18 | 2 | Jane Doe
23 | 3 | An other

基本上我想同时在两个表上插入,在表一上插入然后使用值在表二上插入而不是先插入表一再插入表二。

最佳答案

是的,函数 LAST_INSERT_ID() 返回当前 session 中自动增量列生成的最新 ID。

所以你可以插入到你的主表中:

INSERT INTO `table1` (username) VALUES ('...');

然后插入子表:

INSERT INTO `table2` (user_id, contact_name) VALUES (LAST_INSERT_ID(), '...');

如果您有多个行要插入到子表中,并且子表的主键本身会生成新值,这意味着您必须将值保存在变量中以便多次重用。否则,子表的 PK 将成为新的最近生成的值。下面是将值保存在 MySQL session 变量中的示例:

SET @user_id = LAST_INSERT_ID();
INSERT INTO `table2` (user_id, contact_name) VALUES (@user_id, '...');
INSERT INTO `table2` (user_id, contact_name) VALUES (@user_id, '...');
INSERT INTO `table2` (user_id, contact_name) VALUES (@user_id, '...');

关于Mysql Insert get ID 然后插入返回的Id,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25917646/

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