CREATE PROCEDURE insert_user(in uname varchar(20),in gender varchar(20),in email varchar(20),in phone varchar(20),in pword varchar(20),in city varchar(20))
BEGIN
DECLARE finished integer default 0;
Declare cnt integer default 0;
declare id integer;
DECLARE c_cur cursor for select user_id from user;
DECLARE CONTINUE HANDLE FOR NOT FOUND SET finished = 1;
open c_cur;
ins_user: loop
fetch c_cur into id;
IF finished = 1 THEN
LEAVE ins_user;
end if;
cnt:=id;
end loop ins_user;
cnt:=cnt+1;
insert into user
values(cnt,uname,email,phone,city,pword,gender);
END;
我收到错误#1064-您的sql语法有错误;请查看与您的mysql服务器版本对应的手册,以了解使用“handle for not found set finished=1;打开CU cur;ins\u用户:在第7行循环fetch,我不知道哪里出错了
1条答案
按热度按时间w6lpcovy1#
将分隔符设置为除
;
,例如:$$
. 这将允许解析器处理整个create
作为一个整体的声明。最后,将分隔符重新定义回
;
user
是mysql中的关键字。最好将表重命名为其他名称,或者在表周围使用反勾号。有一个拼写错误;应该是的
HANDLER
不是HANDLE
尝试: