Невозможно поместить 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/