2011-06-15 163 views
0

我有一個非常大的文件,可以創建自動生成的觸發器。但是我不能夠獲得通過線3Mysql觸發器語法錯誤1064

PHP版本5.3.2 MySQL版本14.14 5.1.41 DISTRIB

以下是第幾行:

1 delimiter $$ 
    2 -- CompanyTitleHolder 
    3 -- Create INSERT event for CompanyTitleHolder 
    4 CREATE OR REPLACE TRIGGER trigger_insert_CompanyTitleHolder AFTER INSERT ON CompanyTitleHolder 
    5 FOR EACH ROW 
    6 BEGIN 
    7 
    8 IF(NEW.CompanyTitleHolderID <> '') OR (NEW.CompanyTitleHolderID IS NOT NULL) THEN 
    9 CALL add_Audit (@UserName, "CompanyTitleHolder", "CompanyTitleHolderID", "--new record--", NEW.CompanyTitleHolderID); 
10 END IF; 
11 -- This goes on for quite a while 
?? END;$$ 
?? delimiter ; 

這是錯誤:

/* SQL Error (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 'TRIGGER trigger_insert_CompanyTitleHolder AFTER INSERT ON CompanyTitleHolder F' at line 3 */ 

我試圖做使用this method and code審計表作爲我的基地

回答

1

CREATE OR REPLACE在MySQL中似乎不起作用,這是一個Old Bug。您需要在CREATE TRIGGER聲明前執行DROP TRIGGER IF EXISTS

+0

謝謝:)沒有更多的麻煩,我 – Mallow 2011-06-15 02:40:48

1

你不能CREATE OR REPLACE

嘗試:

DROP TRIGGER IF EXISTS trigger_insert_CompanyTitleHolder; 

CREATE TRIGGER trigger_insert_CompanyTitleHolder AFTER INSERT ON CompanyTitleHolder 
...