| 導購 | 订阅 | 在线投稿
分享
 
 
 

Oracle數據庫刪除表中重複記錄的常見方法

2008-08-05 07:04:55  編輯來源:互聯網  简体版  手機版  移動版  評論  字體: ||
 

方法一:

delete from tb_channel a where a.rowid in

(select max(b.rowid) from tb_channle b

where a.policyno=b.policyno and a.classcode=b.classcode);

——這一辦法在數據記錄超過10萬時一般都會變得很慢。

方法二:

--建立臨時表,--清空原表,--插回原表,如下例:

create table temp_emp as (select distinct * from employee) ;

truncate table employee;

insert into employee select * from temp_emp;

——這一辦法適用于較大的表的情況。因爲是塊操作,對應于大表效率會好很多

方法三:

--建立新表,--去重複放入,--刪除原表,如下例:

select distinct * into new_table from old_table

order by 主 鍵

drop table old_table

exec sp_rename new_table,old_table;

——這一辦法適用于較大的表的情況。因爲是塊操作,對應于大表效率會好很多

 
方法一: delete from tb_channel a where a.rowid in (select max(b.rowid) from tb_channle b where a.policyno=b.policyno and a.classcode=b.classcode); ——這一辦法在數據記錄超過10萬時一般都會變得很慢。 方法二: --建立臨時表,--清空原表,--插回原表,如下例: create table temp_emp as (select distinct * from employee) ; truncate table employee; insert into employee select * from temp_emp; ——這一辦法適用于較大的表的情況。因爲是塊操作,對應于大表效率會好很多 方法三: --建立新表,--去重複放入,--刪除原表,如下例: select distinct * into new_table from old_table order by 主 鍵 drop table old_table exec sp_rename new_table,old_table; ——這一辦法適用于較大的表的情況。因爲是塊操作,對應于大表效率會好很多
󰈣󰈤
王朝萬家燈火計劃
期待原創作者加盟
 
 
 
>>返回首頁<<
 
 
 
 
 熱帖排行
 
王朝網路微信公眾號
微信掃碼關註本站公眾號 wangchaonetcn
 
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有