菜鸟求指点

MySql 码拜 9年前 (2016-06-04) 1008次浏览
用mysql写了一个存储过程,结果一直报错,死活没看见在哪错了求指点!

BEGIN
	declare @value varchar;
	if EXISTS (select 1 from test where name=username) 
	then
		select @value:= name from test where name=username;
	else
		set @value="不知道!";
	end if;
	select @value;
END;

if EXISTS (select 1 from test where name=username) 一直是这一句报错,其中username是varchar类型的参数。
求指点!

解决方案

1

定义变量不要用@
varchar要指定长度
begin
declare $value varchar(50);
if EXISTS (select 1 from test where name=username)
then
select name into $value from test where name=username;
else
set $value=”不知道!”;
end if;
select $value;
end

15

前面那句 create procedure 呢,这个不能删掉的;
不然 mysql 认为这是一个匿名块,匿名块,不能使用 if exists 这样的语句;必须放在存储过程中;

2

直接到MYSQL命令行工具中,加上
delimiter //
create procedure …
begin
..
end//
//

2

引用:

直接到MYSQL命令行工具中,加上
delimiter //
create procedure …
begin
..
end//
//

加上这个应该就可以了


CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明菜鸟求指点
喜欢 (0)
[1034331897@qq.com]
分享 (0)