【问题标题】:Firebird Error in Creating Trigger创建触发器时的 Firebird 错误
【发布时间】:2015-10-09 02:32:52
【问题描述】:
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

我在下面创建触发器时收到此错误:

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 创建了我的表 ID,它必须自动递增。我还创建了我的生成器函数MY_GEN_ID

【问题讨论】:

    标签: triggers generator firebird firebird2.1 flamerobin


    【解决方案1】:

    你必须设置语句终止符并用它来终止CREATE TRIGGER语句,即

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-07-03
      • 2012-10-20
      • 2011-09-11
      • 2013-07-16
      • 2014-01-24
      • 1970-01-01
      • 1970-01-01
      • 2016-02-11
      相关资源
      最近更新 更多