最近在專案發版測試的時候,匯出dmp的時候不小心把開發庫中的一些髒資料匯出來了,測試那邊匯入進去之後一堆不規範的資料,為了不影響測試結果,於是總結了乙個快速清空資料庫資料表所有資料的方法。
(1). 第一種方法:分步驟實現
【a】第一步:禁止所有的外來鍵約束.
開啟plsql ,新建乙個查詢視窗,輸入:
select 'alter table ' || table_name || ' disable constraint ' ||
constraint_name || ';'
from user_constraints
where constraint_type = 'r';
開啟能執行sql的視窗即可
【b】第二步:用delete或truncate刪除所有表的內容
【c】第三步:啟用所有的外來鍵約束
依次執行完這三個步驟之後,發現資料庫中所有的資料表的資料都清空。
(2).第二種方法:執行指令碼生成的sql,然後統一執行
【a】開啟plsql查詢視窗,執行如下plsql指令碼
begin
dbms_output.put_line('--禁用外來鍵sql【開始】');
for var1 in (select 'alter table ' || table_name || ' disable constraint ' ||
constraint_name || ';' as sqltext
from user_constraints
where constraint_type = 'r') loop
dbms_output.put_line(var1.sqltext);
end loop;
dbms_output.put_line('--禁用外來鍵sql【結束】');
dbms_output.new_line;
dbms_output.put_line('--刪除表記錄sql【開始】');
for var1 in (select 'delete from ' || table_name || ';' as sqltext
from user_tables
order by table_name) loop
dbms_output.put_line(var1.sqltext);
end loop;
dbms_output.put_line('--刪除表記錄sql【結束】');
dbms_output.new_line;
dbms_output.put_line('--啟用外來鍵sql【開始】');
for var1 in (select 'alter table ' || table_name || ' enable constraint ' ||
constraint_name || ';' as sqltext
from user_constraints
where constraint_type = 'r') loop
dbms_output.put_line(var1.sqltext);
end loop;
dbms_output.put_line('--啟用外來鍵sql【結束】');
dbms_output.new_line;
end;
【b】然後在output這個tab中複製出所有的sql
【c】統一執行sql:
推薦使用第二種方法,更加簡單方便,但是如果在生產環境中的話,凡是涉及到刪除資料的都要謹慎操作,防止使用者的資料丟失,如果大家在有需要清空資料的時候可以考慮使用該方法。
資料庫清空表
常用的清空資料表的sql語句有如下兩種 delete from 表名 truncate table 表名 執行測試 我使用的是mysql待測試的表有20000條記錄,將其多拷兩份以備測試 分別執行兩個清空表的sql語句 從結果可以看出兩條語句都可以達到清空表的目的,而兩者的區別是 truncate的...
Oracle資料庫 資料表操作實戰
1 使用sql plus建立dept 系部 表和class 班級 表,表結構如下圖所示。建立dept表 建立class表 create table class class id char 5 primary key,class name varchar2 30 unique dept id char...
清空資料庫所有表資料
清空資料庫所有表資料 exec sp msforeachtable truncate table 查詢資料庫所有表名 select name from sysobjects where type u 游標 清空所有表資料 declare tablename varchar 50 declare sq...