您好,欢迎访问一九零五行业门户网

用于将Oracle外键屏蔽的SQL

在junit时,一般不需要考虑外键。但目前数据库生成过程中已经将外键建好,这样在增删改数据时,比较麻烦。按以下方法执行,可以根
在junit时,一般不需要考虑外键。但目前数据库生成过程中已经将外键建好,这样在增删改数据时,比较麻烦。按以下方法执行,可以根据自己的需要使外键失效或者生效。
先执行以下sql
select 'alter table ' || table_name ||' '||
'disable constraint ' || constraint_name || ' ;'
from user_constraints
where constraint_name like 'sys%' and
constraint_type = 'r';
会生成若干条类似于以下的sql语句
alter table account_portfolio disable constraint sys_c001219591 ;
把生成的语句都拷贝到文本编辑器中,如果没有问题,直接拷贝到sql plus中执行,就可以屏蔽所有的外键。
另外,如果执行的以下sql
select 'alter table ' || table_name ||' '||
'enable constraint ' || constraint_name || ' ;'
from user_constraints
where constraint_name like 'sys%' and
constraint_type = 'r';
然后将生成的sql语句执行,可以使外键生效。

其它类似信息

推荐信息