2015-07-20 4 views
1
Preparing query:  CREATE TRIGGER autoincrementor_id FOR ID 
    ACTIVE BEFORE INSERT POSITION 0 
    AS 
    BEGIN 
    IF (NEW.OID IS NULL) THEN 
    NEW.OID = GEN_ID(MY_GEN_ID,1) 
    Error: *** IBPP::SQLException *** 
    Context: Statement::Prepare( CREATE TRIGGER autoincrementor_id FOR ID 
ACTIVE BEFORE INSERT POSITION 0 
AS 
BEGIN 
IF (NEW.OID IS NULL) THEN 
NEW.OID = GEN_ID(MY_GEN_ID,1)) 
Message: isc_dsql_prepare failed 

SQL Message : -104 
Invalid token 

Engine Code : 335544569 
Engine Message : 
Dynamic SQL Error 
SQL error code = -104 
Unexpected end of command - line 6, column 33 

je reçois cette erreur tout en créant le déclencheur ci-dessous:Erreur Firebird dans la création Trigger

CREATE TRIGGER autoincrementor_id FOR ID 
ACTIVE BEFORE INSERT POSITION 0 
AS 
BEGIN 
IF (NEW.OID IS NULL) THEN 
NEW.OID = GEN_ID(MY_GEN_ID,1); 
END 

Où suis-je manque? J'ai déjà ma table ID créée avec un ID principal oid, qui doit être incrémenté automatiquement. J'ai également créé ma fonction de générateur .

Répondre

1

Vous devez définir la fin de commande et l'utiliser pour mettre fin à la déclaration CREATE TRIGGER, à savoir

SET TERM ^; 

CREATE TRIGGER autoincrementor_id FOR ID 
    ... rest of the trigger's body 
END^ 

SET TERM ;^