Страница 1 из 1

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

Добавлено: 01 апр 2011, 23:55
gsAlexander
Добрый день.
Есть база под 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.
Как такое получилось, что при удалении чека сообщается, что его нет, но он существует? Базу могу предоставить.

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

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