oracle在已有重複資料的列上建立唯一約束

2021-09-28 12:49:27 字數 854 閱讀 7997

在有重複資料的列上新增unique constraints,大家正常的解決辦法就修改重複資料,但也可以

保留重複資料,使約束對以後的資料有限制,不過我們還可以用以下的方法來新增唯一約束.

sql> create table aa(num number(6),email varchar2(32));

表已建立。

sql> insert into aa values(1,'11');

已建立 1 行。

sql> insert into aa values(2,'11');

已建立 1 行。

sql> commit;

提交完成。

sql> alter table aa add constraint aa_un unique(email) ;

alter table aa add constraint aa_un unique(email)

*第 1 行出現錯誤:

ora-02299: 無法驗證 (perfstat.aa_un) - 找到重複關鍵字

sql> create index aa_inx on aa(email);

索引已建立。

sql> alter table aa add constraint aa_un unique(email) enable novalidate;

表已更改。

sql> commit;

提交完成。

sql> insert into aa values(1,'11');

insert into aa values(1,'11')

*第 1 行出現錯誤:

ora-00001: 違反唯一約束條件 (perfstat.aa_un)

oracle在已有重複資料的列上建立唯一約束

在有重複資料的列上新增unique constraints,大家正常的解決辦法就修改重複資料,但也可以 保留重複資料,使約束對以後的資料有限制,不過我們還可以用以下的方法來新增唯一約束.sql create table aa num number 6 email varchar2 32 表已建立。s...

Oracle刪除重複資料

在oracle中,有個隱藏了自動rowid,裡面給每條記錄乙個唯一的rowid,我們如果想保留最新的一條記錄,我們就可以利用這個字段,保留重複資料中rowid最大的一條記錄就可以了。下面是查詢重複資料的乙個例子 select a.rowid,a.from 表名 a where a.rowid sel...

ORACLE刪除重複資料

我們可能會出現這種情況,某個表原來設計不周全,導致表裡面的資料資料重複,那麼,如何對重複的資料進行刪除呢?重複的資料可能有這樣兩種情況,第一種時表中只有某些字段一樣,第二種是兩行記錄完全一樣。一 對於部分字段重複資料的刪除 先來談談如何查詢重複的資料吧。下面語句可以查詢出那些資料是重複的 selec...