当前位置:  开发笔记 > 数据库 > 正文

在Firebird数据库中创建自动增量字段的最简单方法

如何解决《在Firebird数据库中创建自动增量字段的最简单方法》经验,为你挑选了1个好方法。

有没有一种使用Firebird创建自动增量字段的简单方法?我已经安装了FlameRobin管理工具,但是通过该工具创建自动增量字段的过程很复杂.我是否可以通过单击复选框或使用除Flamerobin之外的其他工具来创建此类身份字段?



1> Mark Rotteve..:

Firebird 2.5及更早版本没有自动增量字段.您需要使用序列(也称为生成器)和触发器自己创建它们.

Sequence是SQL标准术语,generator是历史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 ; !!

另请参见:如何创建自动增量列?

Firebird 3使这更容易,因为它引入了标识列.在实践中,它是用于为您生成序列+触发器的语法糖.

例如

create table t1 (
   id integer generated by default as identity primary key
)

Firebird 3仅支持" generated by default",这意味着用户可以指定自己的id值(这可能会导致重复的值错误); " generated always"将添加Firebird 4.

另请参阅Firebird 3发行说明的 " 标识列类型 "部分.

Flamerobin还提供工具来为您创建序列+触发器.如果您有现有表,则可以按照以下步骤操作:

    打开表属性:

    打开表属性

    打开主键列的列属性

    打开列属性

    默认列属性,选择新生成器创建触发器:

    默认列属性

    火焰发生器生成的生成器(序列)和触发器代码.请注意,与上面的示例相反,此触发器允许用户指定自己的id值,并使用一些逻辑来避免将来重复.执行此操作(不要忘记提交):

    为生成器+触发器生成代码

推荐阅读
放ch养奶牛
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有