2014-01-08 78 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