熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> Oracle >> 正文

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

2013-11-13 16:08:34  來源: Oracle 

  方法一

  

  delete from tb_channel a where arowid in

  (select max(browid) from tb_channle b

  where apolicyno=bpolicyno and aclasscode=bclasscode);

  

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

  

  方法二

  

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

  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_tableold_table;

  

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


From:http://tw.wingwit.com/Article/program/Oracle/201311/17889.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.