有没有使用Firebird创建自动增量字段的简单方法?我已经安装了FlameRobin管理工具,但是通过该工具创建自动增量字段的过程很复杂。我不能仅仅通过单击复选框或使用Flamerobin以外的其他工具来创建这样的身份字段吗?
发布于 2016-01-01 18:52:59
Firebird 3及更高版本
在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“已被added in Firebird 4。
另请参阅Firebird 3 release notes“标识列类型”一节。
Firebird 2.5和更早版本
Firebird 2.5和更早版本没有自动递增字段。您需要使用序列(也称为生成器)和触发器自己创建它们。
序列是SQL标准术语,生成器是历史上的Firebird术语;这两个术语都在Firebird DDL语法中可用。
CREATE SEQUENCE t1_id_sequence;创建触发器以始终在主键为ID的表T1上生成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 ; !!另请参阅:How to create an autoincrement column?
使用FlameRobin
FlameRobin还提供了为您创建序列+触发器的工具。如果您有现有的表,则可以执行以下步骤:

的列属性

select new >新建默认列属性,选择


https://stackoverflow.com/questions/34553826
复制相似问题