2016-12-15 107 views
1

你好我所有我努力與下面的查詢它創建一個觸發器,它給語法錯誤有人可以幫助我。IF語句觸發器導致Mysql語法錯誤

MySQL版本5.7.14

代碼:

CREATE TRIGGER `after_itgwp_users_insert` AFTER 
INSERT ON `itgwp_users` 
FOR EACH ROW 
    IF USER() = '[email protected]' THEN 
     INSERT INTO audits (OPERATION, row_id,TABLE_NAME,`logical_table_name`,`status`) 
     VALUES ('insert', 
       NEW.ID, 
       'itgwp_users', 
       'contacts', 
       'need_approve'); 

    END IF; 

這觸發的作品,但不是上述之一:

CREATE TRIGGER `after_wp_posts_insert` AFTER INSERT ON `itgwp_posts` 
FOR EACH ROW IF USER() = '[email protected]' THEN 
    INSERT INTO audits (operation, row_id,table_name,`logical_table_name`) values ('insert', NEW.ID, 'itgwp_posts', NEW.post_type); 
    END IF 

回答

1

你將不得不改變分隔符來啓動和然後使用開始結束塊

DELIMITER %% 
CREATE TRIGGER `after_itgwp_users_insert` AFTER 
INSERT ON `itgwp_users` 
FOR EACH ROW 
BEGIN 
    IF USER() = '[email protected]' THEN 
     INSERT INTO audits (OPERATION, row_id,TABLE_NAME,`logical_table_name`,`status`) 
     VALUES ('insert', 
       NEW.ID, 
       'itgwp_users', 
       'contacts', 
       'need_approve'); 

    END IF; 
END %% 
DELIMITER ; 
+0

非常感謝,它的工作。 7分鐘後,我會接受你的答案,這是計算器的規則^ _^ –

+0

無後顧之憂。很高興得到了幫助 – e4c5

+0

當我有空時,我會爲我檢查這些新的關鍵字。 –