--問題提出:
--1、在做資料轉儲業務的時候,如果發生操作錯誤,有可能出現主表和副表中都有同一種資料,
--這樣結算的結果就有可能發生錯誤。
--實現方法:
--建表a
create table a ( bm char(4), mc varchar2(20));
--插入a表資料
insert into a values('1111', '1111');
insert into a values('1112', '1111');
insert into a values('1113', '1111');
insert into a values('1114', '1111');
insert into a values('1115','1111');
--建表b(where 1=2只要表結構,不要資料)
create table b
as select * from a where 1=2;
--插入與a表相同的資料
insert into b values('1111','1111');
insert into b values('1112','1111');
insert into b values('1113','1111');
insert into b values('1114','1111');
select *from a
select* from b
delete from a
delete from b
drop table a
drop table b
--方法一
--exists子句:
delete from a where exists (select 1 from b where a.bm=b.bm and a.mc=b.mc);
--刪除4個記錄。
--where條件:如果兩個表中都擁有相同欄位的主鍵(primary key),則只需比較兩個主鍵就可以了。
--方法二
--in子句:
delete from a where (bm,mc) in (select bm,mc from b);
--實際測試結論
--在表不是很大時,用in子句速度還可以忍受,而如果記錄量很多時(十萬條以上),in子句速度很慢。
oracle刪除資料庫中的所有表
連線 1 先禁用資料庫中所有的約束 select alter table table name disable constraint constraint name from user constraints where constraint type r 執行所有約束禁用命令。2 清空所有表中的資...
oracle刪除資料庫中的所有表
連線 1 先禁用資料庫中所有的約束 select alter table table name disable constraint constraint name from user constraints where constraint type r 執行所有約束禁用命令。2 清空所有表中的資...
Oracle 資料庫中的表
oracle 資料庫中的表 使用者定義的表 使用者自己建立並維護的一組表 包含了使用者所需的資訊 資料字典 由oracle server自動建立的一組表 包含資料庫資訊 select table name from user tables select distinct object type fr...