gpt4 book ai didi

mysql - 在存储过程中设置参数会引发错误

转载 作者:行者123 更新时间:2023-11-29 06:38:25 24 4
gpt4 key购买 nike

我正在尝试使用以下 sql 代码创建一个 stored_procedure:

INSERT INTO users (name,surname,email,phone,address_id)
VALUES (name,surname,email,phone,address_id);

SET @GeneratedUserID = LAST_INSERT_ID();

INSERT INTO user_login (username,password_salt,hash_code,users_user_id)
VALUES (username,password_salt,hash_code,@GeneratedUserID );

INSERT INTO user_roles (user_id,role_id)
VALUES (@GeneratedUserID ,1);

但是,我收到错误:

MySQL said: #1064 - 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 'SET @GeneratedUserID = LAST_INSERT_ID(); INSERT INTO user_login (username,pas' at line 4

最佳答案

您很可能没有更改分隔符,但不能确定,因为您没有发布整个代码(请始终这样做)。因此MySQL认为,在第一个;之后该过程就完成了。

您的程序应如下所示:

delimiter $$
create procedure x(in p_param1 int, in p_param2 int)
begin
statement1;
statement2;
end$$
delimiter ;

另请注意,您应该选择与列名称不同的参数名称。最佳实践是使用诸如 p_ 之类的前缀。对于变量也是如此。使用诸如 v_ 之类的前缀。

关于mysql - 在存储过程中设置参数会引发错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52777955/

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