快速刪除有外鍵關聯的數據庫的數據

某系統有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 備份

相關文章
相關標籤/搜索