Ошибка при каскадном удалении
Добавлено: 03 авг 2005, 10:31
Имеют место быть:
firebird 1.5 CS
/* Одна таблица: */
CREATE TABLE MASTER (
ID_DOC INTEGER NOT NULL,
/* Ещё всякие поля */
);
ALTER TABLE MASTER ADD CONSTRAINT PK_MASTER PRIMARY KEY (ID_DOC);
/* Еще таблица: */
CREATE TABLE DETAIL (
ID INTEGER NOT NULL,
ID_DOC INTEGER NOT NULL,
/* Ещё всякие поля */
);
ALTER TABLE DETAIL ADD CONSTRAINT PK_DETAIL PRIMARY KEY (ID);
ALTER TABLE DETAIL ADD CONSTRAINT FK_DETAIL FOREIGN KEY (ID_DOC) REFERENCES MASTER (ID_DOC) ON DELETE CASCADE ON UPDATE CASCADE;
Проблема:
Пытаюсь удалить строку из MASTER, получаю
violation of FOREIGN KEY constraint "".
violation of FOREIGN KEY constraint "FK_DETAIL" on table "DETAIL".
Дополнительные сведения:
Поблема возникает на одной из двух (идентичных по метаданным) базах, backup/restore не помогает.
И, наконец, вопрос:
Куда копать кроме как в сторону замены внешнего ключа триггером before delete?
firebird 1.5 CS
/* Одна таблица: */
CREATE TABLE MASTER (
ID_DOC INTEGER NOT NULL,
/* Ещё всякие поля */
);
ALTER TABLE MASTER ADD CONSTRAINT PK_MASTER PRIMARY KEY (ID_DOC);
/* Еще таблица: */
CREATE TABLE DETAIL (
ID INTEGER NOT NULL,
ID_DOC INTEGER NOT NULL,
/* Ещё всякие поля */
);
ALTER TABLE DETAIL ADD CONSTRAINT PK_DETAIL PRIMARY KEY (ID);
ALTER TABLE DETAIL ADD CONSTRAINT FK_DETAIL FOREIGN KEY (ID_DOC) REFERENCES MASTER (ID_DOC) ON DELETE CASCADE ON UPDATE CASCADE;
Проблема:
Пытаюсь удалить строку из MASTER, получаю
violation of FOREIGN KEY constraint "".
violation of FOREIGN KEY constraint "FK_DETAIL" on table "DETAIL".
Дополнительные сведения:
Поблема возникает на одной из двух (идентичных по метаданным) базах, backup/restore не помогает.
И, наконец, вопрос:
Куда копать кроме как в сторону замены внешнего ключа триггером before delete?