oracle在已有重複數據的列上創建唯一約束

在有重複數據的列上添加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)

發佈了54 篇原創文章 · 獲贊 6 · 訪問量 60萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章