Что делают другие, чтобы упростить создание простых, последовательных суррогатных ключей, заполненных SEQUENCE
(a.k.a. GENERATOR
) в Firebird> = 2.1? Я считаю процесс сравнительно трудным:
Например, в PostgreSQL я просто набираю:
pg> CREATE TABLE tbl (
> id SERIAL NOT NULL PRIMARY KEY,
> ...
В MySQL я просто набираю:
my> CREATE TABLE tbl (
> id INT NOT NULL PRIMARY KEY AUTO_INCREMENT,
> ...
Но в Firebird я набираю:
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
поля идентификаторов с поддержкой для временных, разрабатываемых и одноразовых таблиц. Что делают другие, чтобы упростить это? Работать с IDE? Запустить предварительную обработку собственного сценария perl над файлом DDL? Etc.