其他人如何简化在Firebird> = 2.1中由SEQUENCE
(又名GENERATOR
)填充的简单序列代理键的创建?我FINC过程比较艰苦:Firebird序列支持的ID简写
例如,在PostgreSQL中,我只需键入:
pg> CREATE TABLE tbl (
> id SERIAL NOT NULL PRIMARY KEY,
> ...
在MySQL中,我只需键入:
my> CREATE TABLE tbl (
> id INT NOT NULL PRIMARY KEY AUTO_INCREMENT,
> ...
但在火鸟I型:
fb> CREATE TABLE tbl (
> id BIGINT NOT NULL PRIMARY KEY,
> ...
fb> CREATE SEQUENCE tbl_id_seq;
fb> SET TERM !!;
> CREATE TRIGGER tbl_id_trg FOR tbl
> ACTIVE BEFORE INSERT POSITION 0
> AS
> BEGIN
> IF ((new.id IS NULL) OR (new.id <= 0)) THEN
> BEGIN
> new.id = GEN_ID(tbl_id_seq, 1);
> END
> END !!
> SET TERM ; !!
......当我达到触发定义的时候,我感到非常无聊。但是,我经常为临时表,开发表和废弃表制作SEQUENCE
-backed ID字段。别人做了什么来简化这个?使用IDE?在DDL文件上运行一个预处理的内部perl脚本?等