2013-11-23 6 views
2

У меня простой триггер, он работает на SQL Fiddle, но он не позволяет мне переместить мое ЗАПИСЬ ВСТАВКИ внутри тела триггера. my code on sqlFiddle Я просто хочу, чтобы переместить эту линиюНевозможно поместить INSERT STATEMENT внутри тела TRIGGER на SQL Fiddle

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; 

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

ответ

5

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

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 
/

Demo ->http://sqlfiddle.com/#!2/aecc7/1