gpt4 book ai didi

mysql - 使用自动数字插入后插入

转载 作者:行者123 更新时间:2023-11-29 04:09:43 24 4
gpt4 key购买 nike

我必须像这样插入两个:

INSERT INTO CONVERSATION (issue,...) VALUES ('Presentation',...);
INSERT INTO CONVERSATIONMESSAGES VALUES (ConversationId, 'Hello everybody',...);

在第一个表中,唯一的 PK 是一个自动数字字段 (ConversationId),后来我必须知道这个自动数字字段才能插入到第二个表中。

有什么办法吗?当我执行第一个 Insert 时做一个 select * 以了解第二个 Insert?

非常感谢,我希望我解释正确。

最佳答案

您可以使用 LAST_INSERT_ID() 将最后生成的 autoincremented 插入到表中,例如

INSERT INTO CONVERSATION (issue,...) VALUES ('Presentation',...);
INSERT INTO CONVERSATIONMESSAGES VALUES (LAST_INSERT_ID(), 'Hello everybody',..);

但如果您有并发的 INSERT,这有时会失败。

尝试为此创建一个存储过程,

DELIMITER $$
CREATE PROCEDURE ProcNAME(...PARAMETERS HERE...)
BEGIN
INSERT INTO CONVERSATION (issue,...) VALUES ('Presentation',...);
SET @lstID = (SELECT MAX(ConversationId) FROM CONVERSATION);
INSERT INTO CONVERSATIONMESSAGES VALUES (@lstID, 'Hello..',..);
END
DELIMITER ;

关于mysql - 使用自动数字插入后插入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15517782/

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