插入到rht_users附近我收到错误。寻找有关如何获得正确查询的建议.... [英] i am getting error near insert into rht_users. looking for suggestions on how to get the right query....

查看:67
本文介绍了插入到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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆