Hello,

Alexandr Kochmin said the following on 26.09.2006 10:24:

> Этож мне надо 2 триггера (на обновление и удаление) на эту маленькую
> таблицу написать, с проверкой на наличие записи в этих 20 таблицах с
> данным значением поля.

Не совсем в тему. У меня была мысль сделать такую проверку с
использованием контекстных переменных. Чтобы получать список PK из
справочной таблицы только один раз. Вроде этого:

SPR_ID_LIST = RDB$GET_CONTEXT('USER_SESSION', 'SPR_ID_LIST');
IF( :SPR_ID_LIST IS NULL ) THEN BEGIN
  FOR SELECT ID FROM SPR INTO :SPR_ID DO BEGIN
    SPR_ID_LIST = COALESCE(SPR_ID_LIST, '~') || :SPR_ID || '~';
  END
END

IF( NOT (SPR_ID_LIST CONTAINING ('~' || NEW.SPR_ID || '~')) ) THEN BEGIN
  EXCEPTION ...
END

Не знаю, правда, много ли тут получится сэкономить...

-- 
Oleg

Ответить