ORACLE 禁用/启用外键和触发器
在很多数据库维护工作中,经常会遇到对现有数据的导入导出的操作,但是数据库中表与表之间有很多外间关系,不能直接的按维护要求对数据进行操作,所有需要对这些外键和触发器临时的禁用,然后在操作数据,完成操作后在启用对应的外键和触发器,下面的脚本就是提供对整个用户对象的外键和触发器的禁用和启用脚本:
--禁用外键和触发器
SET SERVEROUTPUT ON SIZE 1000000
BEGIN
for c in (select 'ALTER TABLE '||TABLE_NAME||' DISABLE CONSTRAINT '||constraint_name||' ' as v_sql from user_constraints where CONSTRAINT_TYPE='R') loop
DBMS_OUTPUT.PUT_LINE(C.V_SQL);
begin
EXECUTE IMMEDIATE c.v_sql;
exception when others then
dbms_output.put_line(sqlerrm);
end;
end loop;
for c in (select 'ALTER TABLE '||TNAME||' DISABLE ALL TRIGGERS ' AS v_sql from tab where tabtype='TABLE') loop
dbms_output.put_line(c.v_sql);
begin
execute immediate c.v_sql;
exception when others then
dbms_output.put_line(sqlerrm);
end;
end loop;
end;
/
--启用外键和触发器
SET SERVEROUTPUT ON SIZE 1000000
BEGIN
for c in (select 'ALTER TABLE '||TABLE_NAME||' ENABLE CONSTRAINT '||constraint_name||' ' as v_sql from user_constraints where CONSTRAINT_TYPE='R') loop
DBMS_OUTPUT.PUT_LINE(C.V_SQL);
begin
EXECUTE IMMEDIATE c.v_sql;
exception when others then
dbms_output.put_line(sqlerrm);
end;
end loop;
for c in (select 'ALTER TABLE '||TNAME||' ENABLE ALL TRIGGERS ' AS v_sql from tab where tabtype='TABLE') loop
dbms_output.put_line(c.v_sql);
begin
execute immediate c.v_sql;
exception when others then
dbms_output.put_line(sqlerrm);
end;
end loop;
end;
/
分享到:
相关推荐
禁用、启用外键约束和触发器
PHP + Mysql仓库管理系统 mysql 包含 (外键、触发器、函数、视图)
NULL 博文链接:https://vernonchen163.iteye.com/blog/2174952
MLDN魔乐科技_Oracle课堂18_外键约束 MLDN魔乐科技_Oracle课堂18_外键约束
oracle 删除(所有)约束 禁用(所有)约束 启用(所有)约束 执行以下sql生成的语句即可 1删除所有外键约束 select 'alter table '||table_name||' drop constraint '||constraint_name||';' from user_constraints ...
内包含外键约束模式,数据库的视图基本操作
约束禁用 –如果有大批量数据导入时,我们可以采用禁用约束的方法... 主要的好处,首先效率高,另外有主外键约束的表之间导 入时,不用考虑导入的先后顺序。 –禁用约束语法: ALTER TABLE table DISABLE CON
oracle设置主外键即主键序列自动增长
Oracle中表的外键是保证系统参照完整性的手段,在实际应用系统中,开发者为了保证系统的完整性,一般要定义大量的外键。如果外键的命名不规范,如采用系统自动生成的名称,则在以后的系统运行维护中会造成很大的麻烦...
MLDN魔乐科技JAVA培训_Oracle课堂18_外键约束.rar
最近在做数码相框上的嵌入式开发,开发过程中使用的SQLite数据库,但是编码的过程中,遇到个问题,SQLite不支持外键约束,外键约束会被解析但不会被执行。
主键和外键的区别 主键是定义一个表中起主要作用的数据项,这些数据项的数据在表中是唯一的,同时系统按主键为表建立索引。 外键是定义一个表中的某数据项的数据,要参照另一个表的主键数据。既没有在另一个表的...
2、外键的作用合理的数据结构设计,表中的数据一定有一致性约束,使用外键,让数据库去约束数据的一致,不给任何人出错的机会 3、外键约束1)当对从表进行操作时,数据
Oracle定义约束 外键约束 实验详解
3、 在表或视图上,每个INSERT、UPDATE或DELETE语句只能创建一个INSTEAD OF类型的触发器,无法为有外键约束且指定为级联删除或级联修改的表创建DELETE或UPDATE语句上的INSTEAD OF 类型的触发器。 SQL SERVER为每个...
表结构查询,主外键关联表名查询,
主要介绍了在Oracle数据库中添加外键约束的方法,需要的朋友可以参考下
简单的建表联系,包括主键外键,帮助新手快速熟悉建表的语句操作
oracle查看主外键约束关系,根据此SQL可以进行主外键约束的查询!
oracle主键和外键[文].pdf