2015-01-19 2 views
1

Почему хранимая процедура не может быть создана?Ошибка в процедуре MySQL

delimiter // 
CREATE PROCEDURE p() 
BEGIN 
DECLARE j INT; 
SET j = 1; 
SELECT j:=j+1, request.* FROM request; 
END// 

Проблема заключается в строке:

SET j:=j+1, ... 

ответ

1

Вам нужно добавить @ к имени переменной:

delimiter // 
CREATE PROCEDURE p() 
BEGIN 
SET @j = 1; 
SELECT @j:[email protected]+1, request.* FROM request; 
END// 

Вот объяснение: MySQL: @variable vs. variable. Whats the difference?

+0

Так что, если я понимаю, правильно, я не могу изменить процедуры-локальные переменные таким образом? – Aliaxander

+0

Да, я так думаю. Проблема заключается только в приращении, которое вы даете внутри выбора, иначе вы можете сделать SET j = 1; SET j = j +1; SELECT j, ... –

Смежные вопросы