我有一个简单的触发器,它在SQL Fiddle上运行,但它不允许我将INSERT语句移动到触发器的主体中。
my code on 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行的“”附近找到正确的语法:
最佳答案
将分隔符更改为/(斜杠)。
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/#!2/aecc7/1
关于mysql - 无法将INSERT STATEMENT放在SQL Fiddle的TRIGGER主体内,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20167164/