CREATE OR ALTER TRIGGER suppdata_bi0 FOR suppdataactive BEFORE INSERT POSITION 0AS DECLARE variable i INTEGER;BEGIN /* Сгенерировать перв. ключ */ IF (NEW.ID IS NULL) THEN /* если не указан первичный ключ */ BEGIN i = 1; while (i GEN_ID("GEN_SuppData_ID", 0)) do BEGIN IF (EXISTS(SELECT ID FROM SUPPDATA WHERE ID = :i)) THEN /* приращение числа, если такое уже есть */ i = i + 1; ELSE BEGIN NEW.ID = i; /* назначение уникального ключа */ exit; END END NEW.ID = GEN_ID("GEN_SuppData_ID", 1); /* если значение автом. генератора меньше i */ ENDEND