FireBird - PGSQL中的串行字段?

时间:2013-04-04 11:51:51

标签: sql firebird identity identifier auto-increment

PGSQL支持“serial”字段类型,转换为:

colname integer DEFAULT nextval('tablename_colname_seq') NOT NULL

这使标识符生成非常容易。

在FireBird中,我只看到了基于触发器的解决方案。

是否可以在FireBird中使用相同的解决方案来避免为每个表创建触发器?

colname integer DEFAULT gen_id(generator, 1)

我现在没有安装FB版本来检查它,但也许有人知道答案。

或者我可以使用“我的功能”吗? 伪:

create function mygenid(genname) returns integer
begin
   return gen_id(genname);
end;

create table x(
   colname integer DEFAULT mygenid(generator, 1)

感谢您的回答!

BW:dd

1 个答案:

答案 0 :(得分:1)

当前版本的Firebird仅支持生成ID的触发器。 Firebird 3.0将引入一个选项,在表DDL中使用generated by default as identity

指定它
create table objects (
   id integer generated by default as identity primary key,
   name varchar(15)
);

据我所知,这将是语法糖,将为您创建触发器和相关序列。