>  기사  >  데이터 베이스  >  数据库使用truncate清理很多表时碰到外键约束时怎么快速解决

数据库使用truncate清理很多表时碰到外键约束时怎么快速解决

WBOY
WBOY원래의
2016-06-07 15:55:281764검색

问题处理思路: 1. 先将数据库中涉及到外键约束的表置为无效状态 2.待清除完所有表数据后再将外键约束的表置为可用状态 具体实现脚本: declare begin for vv_sql in (SELECT ALTER TABLE || table_name || DISABLE CONSTRAINT || CONSTRAINT_NAME alter_sql

问题处理思路:

1. 先将数据库中涉及到外键约束的表置为无效状态

2.待清除完所有表数据后再将外键约束的表置为可用状态

具体实现脚本:

declare

begin

for vv_sql in (SELECT 'ALTER TABLE '|| table_name ||' DISABLE CONSTRAINT ' || CONSTRAINT_NAME alter_sql FROM USER_CONSTRAINTS

where CONSTRAINT_TYPE = 'R')

loop

execute immediate vv_sql.alter_sql;

end loop;

execute immediate 'truncate table 表名;

................. ---此处省略,可用写多个executesql语句

for vv_sql in (SELECT 'ALTER TABLE '|| table_name ||' ENABLE CONSTRAINT ' || CONSTRAINT_NAME alter_sql FROM USER_CONSTRAINTS

where CONSTRAINT_TYPE = 'R')

loop

execute immediate vv_sql.alter_sql;

end loop;

end;

/

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
이전 기사:批量更新다음 기사:一次pga异常消耗分析