Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Oracle > Временное отключение проверки внешних ключей


Автор: darkbookworm 24.4.2007, 22:15
В SQL есть такая команда как set foreign key constraints = 0;, позволяющая отключить временно проверку непротиворечивости внешних ключей, что позволяет в частности создавать внешний ключ на еще не созданную таблицу. Хотелось бы узнать, есть ли такая альтернатива в Oracle?

Автор: batigoal 24.4.2007, 22:50
Можно просто констрейнт вешать не сразу, при создании базы, а позже.

Автор: Sqlninja 24.4.2007, 23:58
Есть возможность отключения констрейнтов, допустим, перед заливкой больших объемов данных.
В случае, если констрейнт создается в момент создания таблицы, его можно отключить добавив в конец опцию DISABLE.
Код

CREATE TABLE t ( f  NUMBER(10)   PRIMARY KEY DISABLE);

Если констрейнт создается отдельно:
Код

ALTER TABLE mytable DISABLE CONSTRAINT myconstr;


Что касается создания внешних ключей на еще не созданную таблицу - это нельзя. Более того, мастер-таблицу нельзя дропнуть, если на нее ссылается хотя бы один внешний ключ, даже если у этого внешнего ключа статус DISABLE NOVALIDATE.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)