插入到rht_users附近我收到错误。寻找有关如何获得正确查询的建议.... [英] i am getting error near insert into rht_users. looking for suggestions on how to get the right query....
本文介绍了插入到rht_users附近我收到错误。寻找有关如何获得正确查询的建议....的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
create procedure rht_users_insert
(
IN p_user_id int ,
IN p_client_id int ,
IN p_first_name varchar ( 50 ),
IN p_last_name varchar ( 50 ),
IN p_login_id varchar ( 60 ),
IN p_password varchar ( 200 ),
IN p_status varchar ( 10 )
);
BEGIN
if 不 存在(选择 client_id 来自 rht_users 其中 user_id = p_user_id)然后
BEGIN
选择 p_user_id = ifnull(max(user_id), 0 )+ 1 来自 rht_users
insert into rht_users
(user_id,client_id,first_name,last_name,login_id,password,status)
值(p_user_id,p_client_id,p_first_name,p_last_name,p_login_id,
p_password,p_status)
END
else
update rht_users set user_id = @ user_id,client_id = @ client_id,first_name = @ first_name,
last_name = @ last_name,login_id = @ login_id,password = @ password,status = @ status)
其中 user_id = @ user_id
< span class =code-keyword> END
解决方案
您有语法错误...;
是MySQL中的命令分隔符(以及其他SQL)...
当你输入;
在该行的末尾,您实际上分隔了两个独立的命令...
创建 procedure rht_users_insert
(
IN p_user_id int ,
IN p_client_id int ,
IN p_first_name varchar ( 50 ),
IN p_last_name varchar ( 50 ),
IN p_login_id varchar ( 60 ),
IN p_password varchar ( 200 ),
IN p_status varchar ( 10 )
); / * this;分隔存储过程的标题和正文并创建语法错误* /
BEGIN
create procedure rht_users_insert
(
IN p_user_id int,
IN p_client_id int,
IN p_first_name varchar(50),
IN p_last_name varchar(50),
IN p_login_id varchar(60),
IN p_password varchar(200),
IN p_status varchar(10)
);
BEGIN
if not exists(select client_id from rht_users where user_id=p_user_id)then
BEGIN
select p_user_id=ifnull(max(user_id),0)+1 from rht_users
insert into rht_users
(user_id,client_id,first_name,last_name,login_id, password,status)
values(p_user_id,p_client_id,p_first_name,p_last_name,p_login_id,
p_password,p_status)
END
else
update rht_users set user_id=@user_id,client_id=@client_id,first_name=@first_name,
last_name=@last_name,login_id=@login_id,password=@password,status=@status)
where user_id=@user_id
END
解决方案
You have syntax error...;
is a command separator in MySQL (and other SQLs too)...
When you put an;
at the end of the line you actually separates two independent commands...
create procedure rht_users_insert ( IN p_user_id int, IN p_client_id int, IN p_first_name varchar(50), IN p_last_name varchar(50), IN p_login_id varchar(60), IN p_password varchar(200), IN p_status varchar(10) ); /* this ; separates the header and the body of your stored procedure and creates a syntax error */ BEGIN
这篇关于插入到rht_users附近我收到错误。寻找有关如何获得正确查询的建议....的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文