gpt4 book ai didi

mysql - 如何创建在第一次插入后从 select 语句插入输入和数据的存储过程

转载 作者:行者123 更新时间:2023-11-29 10:28:58 25 4
gpt4 key购买 nike

我正在尝试在 MySQL 中创建一个存储过程,它将向两个不同的表添加行。第一个表(sites)有一个 id 列设置为 auto_increment,我想将其包含在sitesByUser 表的第二个插入语句中。我根据这篇优秀的文章尝试了一些想法:https://dba.stackexchange.com/questions/2973/how-to-insert-values-into-a-table-from-a-select-query-in-postgresql但我收到各种错误,例如下面列出的错误。我怀疑我的问题的一部分是我试图将 userInputSELECT id FROM site WHERE id=LAST_INSERT_ID() 添加到同一个表中,但我不知道该怎么做才能让它发挥作用。

CREATE PROCEDURE createSite(IN siteName VARCHAR(2048), IN userInput VARCHAR(255))
BEGIN
INSERT INTO sites(siteName, user) VALUES (siteName, userInput);
INSERT INTO sitesByUser(user, site) userInput, SELECT id FROM sites WHERE id=LAST_INSERT_ID();
SELECT * FROM sitesByUser WHERE id=LAST_INSERT_ID();
END

MySQL 的响应:

Error while performing Query.
ER_PARSE_ERROR
ER_PARSE_ERROR: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'userInput, SELECT id FROM sites WHERE id=LAST_INSERT_ID();
SELECT * FROM sitesBy' at line 3

最佳答案

试试这个

SET @last_id_in_table1 = LAST_INSERT_ID();
SELECT * FROM sitesByUser WHERE id=@last_id_in_table1;

希望这有帮助

关于mysql - 如何创建在第一次插入后从 select 语句插入输入和数据的存储过程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47785845/

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