2015-07-20 2 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 

Я получаю эту ошибку при создании триггера ниже:Firebird Ошибка при создании триггера

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 

Где я отсутствующий? У меня уже есть таблица ID, созданная с основным идентификатором oid, который должен быть автоматически увеличен. Я также создал свою функцию генератора .

ответ

1

Вы должны установить заявление терминатор и использовать его, чтобы прекратить CREATE TRIGGER заявление, т.е.

SET TERM ^; 

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

SET TERM ;^ 
Смежные вопросы