MySQL触发和“引用”

时间:2014-01-08 11:22:48

标签: mysql sql triggers

我对MySQL很新。我完全有能力进行查询和创建表格,但之前从未尝试过触发器。

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

我收到了这个错误:

  

错误代码:1064。您的SQL语法有错误;检查   手册,对应右边的MySQL服务器版本   在'REFERENCING NEW AS N INSERT INTO mora(电子邮件)附近使用的语法   VALUES(N.Email)'在第3行

我想知道我做错了什么。 这个想法似乎很基本。在“cliente”表上新插入后,“Email”行中的信息应复制到表“mora”。

1 个答案:

答案 0 :(得分:2)

只需删除“REFERENCING NEW AS N,然后使用NEW.Email

您还错过了触发器代码周围的“BEGIN”和“END”

你也错过了“每行”

检查mysql触发器引用,这里我复制一个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