MySQL триггерный запрос от phpMyAdmin - PullRequest
1 голос
/ 14 сентября 2011

Я выполняю следующий запрос с моей вкладки PhpMyadmin sql

CREATE TRIGGER testTrigger 
AFTER INSERT ON tbl_table1 
FOR EACH ROW 
BEGIN 
INSERT INTO tbl_table2 (id,name) values (NEW.id,NEW.name); 
END

Но каждый раз я получаю сообщение об ошибке:

# 1064 - у вас есть ошибка в вашем синтаксисе SQL;проверьте руководство, соответствующее вашей версии сервера MySQL, чтобы найти правильный синтаксис для использования рядом с '' в строке 5

. Я использую версию клиента MySQL: 5.1.37, PHPMyadmim Информация о версии: 3.2.2.1deb1

1 Ответ

4 голосов
/ 14 сентября 2011

Смотрите здесь :

Если вы хотите использовать SET NEW.col_name = value в своем триггере, обратите внимание, что вы НЕ МОЖЕТЕ использовать это ПОСЛЕ действия и должен использовать его ДО действия.

Так что, вероятно, вам следует попробовать:

CREATE TRIGGER testTrigger 
BEFORE INSERT ON tbl_table1 
FOR EACH ROW 
BEGIN 
    INSERT INTO tbl_table2 (id,name) values (NEW.id,NEW.name); 
END

РЕДАКТИРОВАНИЕ: Я пыталсяэто и работает в MySQL

DROP TRIGGER IF EXISTS testTrigger;
CREATE TRIGGER testTrigger 
BEFORE INSERT ON tbl_table1 
FOR EACH ROW 
BEGIN 
  INSERT INTO tbl_table2 VALUES (NEW.id,NEW.name);
END;

Потом попробовал INSERT INTO test1 SELECT 5,'pois'; и триггер сработал !!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...