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; открыть c_cur; ins_user: loop fetch 'в строке 7 я не уверен, где он ошибается






;, например: $$. Это позволит синтаксическому анализатору рассматривать весь оператор create как единое целое.;.user - это ключевое слово в MySQL. Лучше переименовать вашу таблицу во что-нибудь другое или использовать обратные кавычки вокруг нее.HANDLER, а не HANDLEПытаться:
DELIMITER $$
DROP PROCEDURE IF EXISTS insert_user $$
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 INT DEFAULT 0;
Declare cnt INT DEFAULT 0;
declare id INT;
DECLARE c_cur CURSOR FOR select user_id from `user`;
DECLARE CONTINUE HANDLER 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;
SET cnt:=id; -- set was missing here
end loop ins_user;
SET cnt:=cnt+1; -- set was missing here
insert into `user`
values(cnt,uname,email,phone,city,pword,gender);
END $$
DELIMITER ;
# 1064 - У вас есть ошибка в синтаксисе SQL; проверьте руководство, соответствующее вашей версии сервера MySQL, чтобы найти правильный синтаксис рядом с ': = id; конец цикла ins_user; cnt: = cnt + 1; вставить i 'в строку 22
теперь я получаю еще одну ошибку. Мне очень жаль. Я новичок в mysql, поэтому мне сложно
@Niti, когда мы присваиваем значение переменной, MySQL требует использования ключевого слова set. Проверить обновленный ответ сейчас
@Niti, пожалуйста, опубликуйте точное сообщение об ошибке, которое вы получаете.