gpt4 book ai didi

mysql - 多个插入的行 ID

转载 作者:可可西里 更新时间:2023-11-01 08:47:28 25 4
gpt4 key购买 nike

我一次插入多行,例如:

INSERT INTO person VALUES ('joe', 50), ('jon', 24);

然后我需要使用他们的 id 将上面的内容链接到另一个表。通常我会使用 LAST_INSERT_ID()

来做到这一点
INSERT INTO hobbies VALUES (LAST_INSERT_ID(), "golf");

但是插入多个值是不可行的,因为 LAST_INSERT_ID() 返回第一个插入行的 ID。

我可以在每次插入爱好后增加 LAST_INSERT_ID(),但前提是所有人员行都已成功插入。

另一种选择是一次插入一个人行,但我不知道这是否会影响性能?

最佳答案

使用单个语句插入值并将它们包装到事务中,例如:

START TRANSACTION;
INSERT INTO person VALUES ('joe', 50);
INSERT INTO hobbies VALUES (LAST_INSERT_ID(),'golf');
COMMIT;

您的性能可能会受到轻微影响,但这应该会给您带来一致的结果。增加 LAST_INSERT_ID() 返回的值是不安全的,因为可能有并发插入修改了 AUTO INCREMENT 值。

关于mysql - 多个插入的行 ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24240068/

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