在Firebird中创建触发器时出错

时间:2013-06-12 19:21:47

标签: database firebird

尝试创建触发器以在Firebird 2.5中发布事件,这让我疯狂。这是我的触发器:

CREATE TRIGGER test_trig FOR test
AFTER INSERT
AS
BEGIN
        POST_EVENT 'test_inserted';
END
-- there is a blank line here

我在文件中有这个,这是我在尝试运行时遇到的错误:

SQL> in test.sql;
Statement failed, SQLSTATE = 42000
Dynamic SQL Error
-SQL error code = -104
-Unexpected end of command - line 5, column 13
After line 0 in file test.sql
Expected end of statement, encountered EOF

当我尝试以交互方式输入时,我得到:

Statement failed, SQLSTATE = 42000
Dynamic SQL Error
-SQL error code = -104
-Token unknown - line 1, column 1
-END

有什么想法吗?我已经验证表“test”确实存在并且其中包含数据。我的语法似乎有一个错误,但我无法弄清楚是为了挽救我的生命。

1 个答案:

答案 0 :(得分:3)

isql中的每个命令都必须以终结符符号结束 - 默认情况下为;,但由于这也在触发器的主体内部用作语句终止符,因此您需要使用{{3}将终止符更改为其他符号。命令。要将终结符更改为^,您的脚本将为

SET TERM ^ ;

CREATE TRIGGER test_trig FOR test
AFTER INSERT
AS
BEGIN
        POST_EVENT 'test_inserted';
END^

SET TERM ; ^