我有一个简单的触发器,它在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/

10-12 14:16