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
答案 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)
);
据我所知,这将是语法糖,将为您创建触发器和相关序列。