首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >存储过程不适用于插入数据

存储过程不适用于插入数据
EN

Stack Overflow用户
提问于 2020-05-07 03:01:16
回答 2查看 28关注 0票数 0

我有一张桌子:

代码语言:javascript
复制
User

user_id int PK
username varchar(20)
secret_code varchar(20)
name varchar(20)
age int
gender varchar(20)
city varchar(20)
latest_signin_time timestamp
latest_signout_time timestamp
loc_list json
buddy_list json

我创建了一个存储过程:

代码语言:javascript
复制
create procedure insert_users(IN user_id int , in username varchar(20),in secret_code varchar(20), 
                   in name varchar(20), in age int, in gender varchar(20), in city varchar(20), 
                   in latest_signin_time timestamp, in latest_signout_time timestamp, 
                   in loc_list json , in buddy_list json)
begin

insert into user values(user_id, username, secret_code, name, age, gender, city, 
                        latest_signin_time, latest_signout_time, loc_list,buddy_list)
end ;


call insert_user(​'1', 'avs431','pwd1','Ameya','22','Male','Mumbai',null,null,'[]','[]'​​);

但是,我的代码没有运行,并且我一直收到“错误代码: 1064.您的SQL语法中有一个错误;请查看与您的MySQL服务器版本相对应的手册,了解在第9行使用的正确语法。”

我不确定这里出了什么问题。有人能帮上忙吗?

谢谢!

EN

回答 2

Stack Overflow用户

发布于 2020-05-07 03:09:51

代码语言:javascript
复制
create procedure insert_users(IN user_id int , in username varchar(20),in secret_code varchar(20), 
                   in name varchar(20), in age int, in gender varchar(20), in city varchar(20), 
                   in latest_signin_time timestamp, in latest_signout_time timestamp, 
                   in loc_list json , in buddy_list json)
/* begin */

insert into user values(user_id, username, secret_code, name, age, gender, city, 
                        latest_signin_time, latest_signout_time, loc_list,buddy_list)
/* end */ ;
票数 0
EN

Stack Overflow用户

发布于 2020-05-07 03:27:50

过程中的命令以分号(;)终止。在过程参数中使用前缀,这样参数就不会与列名混淆。另外,在INSERT中列出列名,这样即使向表中添加了列,您的过程也可以正常工作。

代码语言:javascript
复制
delimiter //
create procedure insert_users(
in_user_id int, 
in_username varchar(20),
in_secret_code varchar(20), 
in_name varchar(20), 
in_age int, 
in_gender varchar(20), 
in_city varchar(20), 
in_latest_signin_time timestamp, 
in_latest_signout_time timestamp, 
in_loc_list json, 
in_buddy_list json
)
begin

insert into user (user_id, username, secret_code, name, age, gender, 
       city, latest_signtime, latest_signout_time, loc_list, buddy_list)
values(in_user_id, in_username, in_secret_code, in_name, in_age, in_gender, 
       in_city, in_latest_signin_time, in_latest_signout_time, in_loc_list, in_buddy_list);

end
//
delimiter ;

call insert_user(​'1', 'avs431','pwd1','Ameya','22','Male','Mumbai',null,null,'[]','[]'​​);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61643223

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档