2011-06-15 162 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 
...