А как это у Вас реализовано?
например так:
код вида
create table DOC$ITEMS( -- Экземпляры документов
ID ZLS$PK, -- Первичный ключ
ID_K ZLS$FK, -- Вид документа
NAME ZLS$NAME, -- Идентификатор документа
COMMENT ZLS$COMMENT, -- Примечание
XML DOC$XML, -- Исходный текст документа
constraint DOC$ITEMS -- Первичный ключ
primary key (ID),
constraint DOC$ITEMS_NAME -- Уникальное имя документа одного типа
unique (ID_K, NAME),
constraint DOC$ITEMS_K -- Вид документа
foreign key (ID_K)
references DOC$KINDS(ID)
on delete cascade
)^
превращается в:
/* D:\zls\sql\doc\tables\items.sql */
create table DOC$ITEMS(
ID ZLS$PK,
ID_K ZLS$FK,
NAME ZLS$NAME,
COMMENT ZLS$COMMENT,
XML DOC$XML,
constraint DOC$ITEMS
primary key (ID),
constraint DOC$ITEMS_NAME
unique (ID_K, NAME),
constraint DOC$ITEMS_K
foreign key (ID_K)
references DOC$KINDS(ID)
on delete cascade
)
^
commit^
comment on table DOC$ITEMS is 'Экземпляры документов'^
commit^
comment on column DOC$ITEMS.ID is 'Первичный ключ'^
commit^
comment on column DOC$ITEMS.ID_K is 'Вид документа'^
commit^
comment on column DOC$ITEMS.NAME is 'Идентификатор документа'^
commit^
comment on column DOC$ITEMS.COMMENT is 'Примечание'^
commit^
comment on column DOC$ITEMS.XML is 'Исходный текст документа'^
commit^
comment on index DOC$ITEMS is 'Первичный ключ'^
commit^
comment on index DOC$ITEMS_NAME is 'Уникальное имя документа одного типа'^
commit^
comment on index DOC$ITEMS_K is 'Вид документа'^
create generator DOC$ITEMS
^
set generator DOC$ITEMS to 0
^
commit
^
create trigger DOC$ITEMS_ID for DOC$ITEMS -- Проверка первичного ключа
before insert or update or delete
position 0 as
begin
if (INSERTING)
then begin
if (NEW.ID is null) then NEW.ID = GEN_ID( DOC$ITEMS, 1);
end
else if ( (OLD.ID = 0 and DELETING) or ( (OLD.ID < 0) and
(UPDATING or DELETING) ) )
then exception ZLS$BUILD_IN_PARAMETER;
end
^
commit^
comment on trigger DOC$ITEMS_ID is 'Проверка первичного ключа'^
insert into ZLS$TRANSFER(ID, ORDER_NUMBER, TABLE_NAME)
values (GEN_ID(ZLS$TRANSFER,1), GEN_ID(ZLS$TRANSFER,0), 'DOC$ITEMS')
GRANT ALL ON DOC$ITEMS TO TRIGGER DOC$ITEMS_ID ^
set generator DOC$ITEMS to 1000 ^
--
Булычев Алексей
http://www.stella-npf.ru