2011-06-15 4 views
0

J'ai un très gros fichier qui crée des déclencheurs que j'ai générés automatiquement. Cependant, je ne suis pas en mesure de faire passer la ligne 3.Erreur de syntaxe du déclencheur Mysql 1064

Version Php 5.3.2 Version Mysql 14,14 Distrib 5.1.41

Voici les premières lignes:

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 ; 

Et c'est l'erreur:

/* 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 */ 

Je suis en train de faire une table de vérification à l'aide this method and code comme ma base

Répondre

1

CREATE OR REPLACE ne semble pas fonctionner dans MySQL, c'est un Old Bug. Vous devrez faire un DROP TRIGGER IF EXISTS avant votre déclaration CREATE TRIGGER.

+0

Merci :) Pas plus de maux de tête pour moi – Mallow

1

Vous ne pouvez pas CREATE OR REPLACE.

Essayez:

DROP TRIGGER IF EXISTS trigger_insert_CompanyTitleHolder; 

CREATE TRIGGER trigger_insert_CompanyTitleHolder AFTER INSERT ON CompanyTitleHolder 
...