【发布时间】:2013-09-23 11:48:24
【问题描述】:
我需要帮助在 Firebird 中创建一个自动增量列。
下面是我的桌子
我希望列 Seqid 自动递增
create Table TS_PRODUCT_PRICEHISTORY
(
Seqid int not null,
Remarks varchar(100)
)
我创建了一个生成器
CREATE GENERATOR tsproductpricehistory_gen_id;
然后创建一个触发器
CREATE TRIGGER aitspph_id FOR TS_PRODUCT_PRICEHISTORY
ACTIVE BEFORE INSERT POSITION 0
AS
BEGIN
IF (NEW.SEQID IS NULL) THEN
NEW.SEQID = GEN_ID(tsproductpricehistory_gen_id,1);
END
当我尝试通过上述代码创建触发器时,出现此错误
错误:*** IBPP::SQLException *** 上下文:Statement::Prepare( CREATE TRIGGER aitspph_id FOR TS_PRODUCT_PRICEHISTORY ACTIVE BEFORE INSERT POSITION 0 AS BEGIN IF (NEW.SEQID IS NULL) THEN NEW.SEQID = GEN_ID(tsproductpricehistory_gen_id,1) ) 消息:isc_dsql_prepare 失败
SQL 消息:-104 无效令牌
引擎代码:335544569 引擎消息:动态 SQL 错误 SQL 错误代码 = -104 命令行意外结束 - 第 6 行,第 50 列
我似乎找不到创建触发器的代码有什么问题。
【问题讨论】:
-
您是否尝试更改终结符?设定期限 ^^ ;在您创建触发器语句之前。 Example in the Firebird FAQ
-
你是如何(什么工具)执行这个 DDL 的?
标签: triggers generator firebird