oracle快速創建主鍵


oracle中,有時我們會發現有一些表中,一些記錄它們每個字段的數據 都是一樣一樣的,即重復數據,這種數據的不存在肯定是不對了。

究其原因,就是該表沒有主鍵,給一個表創建主鍵,非常容易:

alter table student add constraint pk_student primary key(studentid);

 

但是如果這表的數據量特別的大,那個創建主鍵的時間就會特別的長。

下面創建一種,給大表快遞創建主鍵的方法:

CREATE UNIQUE INDEX PK_student ON student(id) nologging parallel 4 ;
alter index PK_student noparallel;
ALTER TABLE student ADD (
  CONSTRAINT PK_student
  PRIMARY KEY
  (id)
  USING INDEX PK_student
  ENABLE VALIDATE);

 

 

當然還是推薦創建表的時候就把主鍵建好,省事:

create table student (id int primary key not null,name varchar2(20));

 

再備注一下,刪除重復數據的sql,只留有rowid最小的記錄

delete from 表 a where (a.Id) in (select Idfrom 表 group by Id having count(*) > 1) and rowid not in (select min(rowid) fromgroup by Id having count(*)>1)

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM