2014-01-08 55 views
1

我对MySQL相当陌生。我完全有能力查询和创建表格,但从未尝试过触发器。MySQL触发器和“引用”

Error Code: 1064. You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'REFERENCING NEW AS N INSERT INTO mora(Email) VALUES (N.Email)' at line 3

我不知道我在做什么错:

CREATE TRIGGER TrigMora AFTER INSERT ON cliente 
    REFERENCING NEW AS N 
    INSERT INTO mora(Email) VALUES (N.Email); 

我得到这个错误。 这个想法看起来很基本。在表格“客户”上新插入后,“电子邮件”行中的信息应复制到表格“mora”中。

+1

您的语法让我想起了Oracle。你确定你正在阅读正确的数据库引擎的文档吗? –

回答

1

只是删除“REFERENCING NEW AS N,并使用NEW.Email

你还缺少 “BEGIN” 和 “END” 周围的触发代码

你也失去了 “每一行”

检查MySQL的触发参考,在这里,我复制UA的MySQL触发例如:

delimiter // 
CREATE TRIGGER upd_check BEFORE UPDATE ON account 
    FOR EACH ROW 
    BEGIN 
     IF NEW.amount < 0 THEN 
      SET NEW.amount = 0; 
     ELSEIF NEW.amount > 100 THEN 
      SET NEW.amount = 100; 
     END IF; 
    END;// 
delimiter ; 

从复制:MYsql-reference

+0

你也可以检查:[mysql插入触发器后更新另一个表的列](http://stackoverflow.com/questions/16892070/mysql-after-insert-trigger-which-updates-another-tables-column) – Melon