Невозможно удалить CHECK_CONSTRAINTS

Access Violation, некорректное выполнение запросов или вызовов API, ошибки утилит командной строки, в общем все, что вам мешает работать

Модераторы: kdv, dimitr

Ответить
gsAlexander
Сообщения: 12
Зарегистрирован: 07 ноя 2007, 16:28

Невозможно удалить CHECK_CONSTRAINTS

Сообщение gsAlexander » 01 апр 2011, 23:55

Добрый день.
Есть база под FB2.5, в ней была простая табличка с данными

Код: Выделить всё

CREATE TABLE GD_RUID (
    ID         DINTKEY,
    XID        DINTKEY ,
    DBID       DINTKEY ,
    MODIFIED   TIMESTAMP NOT NULL,
    EDITORKEY  DFOREIGNKEY );
На поле было наложено ограничение (не подумавши):

Код: Выделить всё

ALTER TABLE gd_ruid ADD CONSTRAINT GD_CHK_RUID_ETALON CHECK((xid >= 147000000) OR (dbid = 17))
В итоге в таблице оказались данные, которые не попадают под данное ограничение. Решено было удалить чек:

Код: Выделить всё

alter table gd_ruid drop constraint GD_CHK_RUID_ETALON
В итоге получилось так, что чек не удалился, при повторной попытке удаления получаем сообщение
This operation is not defined for system tables.
unsuccessful metadata update.
CONSTRAINT GD_CHK_RUID_ETALON does not exist.
но данные которые не попадают под чек занести нельзя + чек имеется в таблице RDB$CHECK_CONSTRAINTS + есть и его триггеры в RDB$TRIGGERS.
Как такое получилось, что при удалении чека сообщается, что его нет, но он существует? Базу могу предоставить.

kdv
Forum Admin
Сообщения: 6595
Зарегистрирован: 25 окт 2004, 18:07

Re: Невозможно удалить CHECK_CONSTRAINTS

Сообщение kdv » 07 апр 2011, 21:46

с этим делом пишите в support@ibase.ru. И сообщите точную версию FB (со ссылкой на этот топик).

Ответить