короче, есть еще база. На ней оператор:

ALTER DOMAIN dboolean SET DEFAULT 0

Кидает все ту же ошибку (на комите транзакции).

"This operation is not defined for system tables.
unsuccessful metadata update.
DEFINE TRIGGER failed.
action cancelled by trigger (1) to preserve data integrity.
Cannot update trigger used by a CHECK Constraint."

Проверяю базу запросом:

with ctt as (
  select
    c.rdb$constraint_name constraint_name,
    rc.rdb$relation_name contraint_relation,
    t.rdb$trigger_name trigger_name,
    t.rdb$relation_name trigger_relation
  from
    rdb$check_constraints c
      join rdb$triggers t on c.rdb$trigger_name = t.rdb$trigger_name
      join rdb$relation_constraints rc on rc.rdb$constraint_name =
c.rdb$constraint_name
)

select
  *
from
  ctt c1 join ctt c2 on
    c1.trigger_name = c2.trigger_name
    and
    c1.constraint_name <> c2.constraint_name

Запрос выдает пустой набор. Т.е. ситуации "У тебя в системных таблицах
какой-то ужас. Два разных чека на разных
таблицах ссылаются на один и тот же системный триггер." не
наблюдается. Но, оператор не проходит! В чем проблема?

Ответить