某系統有600張表,要求刪除業務數據,但保留基礎數據(部門和人員等)和字典數據。table
若是一張表一張表刪除工做量就大了,由於外鍵關聯決定了刪除必須有前後順序。基礎
咱們能夠在刪除前禁用外鍵,待刪除完畢以後再啓用外鍵。select
固然,最後啓用的時候發現刪除了不該該刪除的數據,所以刪除前最好作完整備份。數據
生成禁用外鍵的腳本:腳本
select 'alter table '|| t.table_name||' disable constraint '||t.constraint_name||';'
from user_constraints t where t.constraint_type = 'R'
order by t.table_nametab
生成啓用外鍵的腳本:di
select 'alter table '|| t.table_name ||' enable constraint '||t.constraint_name||';'
from user_constraints t where t.constraint_type = 'R'
order by t.table_name 備份