ArtVT
Дата: 10.08.2005 18:25:10
Прошу извинить меня за глупый вопрос, просто Oracle у нас недавно, кто ставил уехал на юг, SQLем тоже он занимался, я остался один, читать извините нечего.
Тут как назло поменять надо значение в таблице, но таблицы связаные, при попытке изменить выдает ошибку ORA-02292: integrity constant (SARATOV.D_RUK_D_OPERAT_FK) violated - child record found
С этим понятно, нашел где надо поправить еще, но не могу!!
Подсказали что надо на время изменения отключить foreign key, но как правильно я не знаю.
ПЛЗ, подскажите где и как это можно попровить. Перед глазами только SQL Navigator 4.4. Используем что-то типа Forms and reports, база в другом городе.
Заранее большое спасибо за ответы на столь идиотский вопрос:)
softwarer
Дата: 10.08.2005 18:38:44
Прежде всего от имени пользователя SARATOV выполните запрос
select deferrable from user_constraints where constraint_name = 'D_RUK_D_OPERAT_FK' |
Если там написано DEFERRABLE - тогда Вам повезло. Делаете так:
set constraint D_RUK_D_OPERAT_FK deferred
... все действия по изменению записи и ссылающихся на нее
commit
|
Если же написано NOT DEFERRABLE... полагаю, проще всего будет в SQL Navigator-е получить текст команды создания этого внешнего ключа, удалить его (DROP CONSTRAINT такойто), создать заново, выполнив эту команду с добавлением в конце ключевого слова DEFERRABLE, и далее - см. выше :)