2015-12-09 2 views
1

Мне нужно объявить переменную в MySQL. и вот что я имею до сих пор.MySQL # 1064: объявить переменную

CREATE TRIGGER upd 
BEFORE UPDATE ON chats FOR EACH ROW 
BEGIN 
    DECLARE my_cursor CURSOR FOR SELECT name FROM messages; 
END 

логически, это швы ОК. но есть странные ошибки

т.е.

SQL запрос:

CREATE TRIGGER upd 
    BEFORE UPDATE ON chats FOR EACH ROW 
    BEGIN 
     DECLARE my_cursor CURSOR FOR SELECT name FROM messages; 

MySQL сказал:

#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 4 
+0

необходимо изменить свои разделители. например. 'delimiter $$' и не забудьте добавить 'end $$' и восстановить разделитель по умолчанию – amdixon

+1

, теперь он говорит' # 1064 - У вас есть ошибка в синтаксисе SQL; проверьте руководство, соответствующее версии вашего сервера MySQL, для правильного синтаксиса для использования рядом с «$$» в строке 5' –

+1

создайте скрипку с определением таблицы и триггером. также, пожалуйста, подтвердите, используете ли вы mysql or oracle – amdixon

ответ

3

Это работает. Удачно удалит его, когда он будет закрыт.

В нем просто отсутствует блок блокировки разделителя.

drop trigger if exists upd; 

delimiter $$ 
CREATE TRIGGER upd 
BEFORE UPDATE ON chats FOR EACH ROW 
BEGIN 
    DECLARE vapenid INT; 
END; 
$$ 
delimiter ; 
Смежные вопросы