我有以下基本表:
create table hobbies (
id int primary key auto_increment,
name varchar(32) unique);
我正在尝试创建一个存储过程来在此表中插入新行,如下所示:
delimiter //
create procedure add_hobby(hobby varchar(32))
begin
insert into hobbies(name) values(hobby);
end
delimiter //
call add_hobby('randomHobby');
当我调用上述过程时,我收到消息“发生意外错误”。我正在 db-fiddle.com、MySQL 版本 8.0 上运行查询。如果我做错了什么或错过了什么,有人可以提供一些指导吗?我可以提到该过程带有选择操作并且没有参数有效。非常感谢。
最佳答案
您需要首先设置分隔符,然后在末尾重置它 对于您的参数,您需要设置它们是 IN 或 out 的天气,然后是名称和类型
delimiter //
create procedure add_hobby(IN hobby varchar(32))
begin
insert into hobbies(name) values(hobby);
end//
delimiter ;
关于MySQL存储过程表插入错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54377142/