Невозможно поместить INSERT STATEMENT в тело TRIGGER на SQL Fiddle

У меня есть простой триггер, он работает на SQL Fiddle, но он не позволяет мне перемещать INSERT STATEMENT внутри тела триггера. мой код на sqlFiddle я просто хочу переместить эту строку

INSERT INTO t2(start_date) VALUES (CURDATE());

внутри тела этого триггера

CREATE TRIGGER trig1
AFTER UPDATE ON t1
FOR EACH ROW 
BEGIN
  -- here, i want to put the simple INSERT STATEMENT here
END;

не могу заставить его принять это на sqlFiddle
Когда я попробую это

CREATE TRIGGER trig1
AFTER UPDATE ON t1
FOR EACH ROW 
BEGIN
  INSERT INTO t2(start_date) VALUES (CURDATE());
END;

это дает мне эту ошибку: Ошибка создания схемы: у вас есть ошибка в вашем синтаксисе SQL; проверьте руководство, соответствующее вашей версии сервера MySQL, чтобы найти правильный синтаксис для использования рядом с '' в строке 4:

1 ответ

Решение

Измените разделитель на / (косая черта).

CREATE TABLE t1
    (
     id INT auto_increment primary key, 
     value INT(11) 
    )
/
CREATE TABLE t2
    (
     id INT auto_increment primary key,
     start_date DATE
    )
/


INSERT INTO t1( value ) VALUES( 100 )
/

CREATE TRIGGER trig1
AFTER UPDATE ON t1
FOR EACH ROW 
BEGIN
   INSERT INTO t2( start_date ) VALUES ( now() );
END;
/


UPDATE t1 SET value = 10
/

Демо -> http://sqlfiddle.com/

Другие вопросы по тегам