有没有一种简单的方法可以使用Firebird创建自动增量字段?我已经安装了FlameRobin管理工具,但是通过该工具创建自动增量字段的过程很复杂。我不能仅通过单击复选框或使用Flamerobin以外的其他工具来创建这样的标识字段吗?
在Firebird 3中,它很容易创建,因为它引入了标识列。实际上,它是为您生成序列+触发器(如Firebird 2.5所示)的语法糖。
例如
create table t1 (
id integer generated by default as identity primary key
)
Firebird 3仅支持“ generated by default
”,这意味着用户可以指定自己的id值(这可能导致重复的值错误);“ generated always
”将添加Firebird 4。
另请参阅Firebird 3发行说明的“标识列类型”部分。
Firebird 2.5及更早版本没有自动增量字段。您需要使用序列(也称为生成器)和触发器自己创建它们。
序列是SQL标准术语,生成器是历史上的Firebird术语,它们都被使用。
要创建一个序列:
CREATE SEQUENCE t1_id_sequence;
创建触发器以始终在T1
具有主键的表上生成id ID
:
set term !! ;
CREATE TRIGGER T1_AUTOINCREMENT FOR T1
ACTIVE BEFORE INSERT POSITION 0
AS
BEGIN
NEW.ID = next value for t1_id_sequence;
END!!
set term ; !!
另请参阅:如何创建自动增量列?
Flamerobin还提供了为您创建序列+触发器的工具。如果您有一个现有的表,可以按照下列步骤操作:
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句