Mou*_*diz 2 oracle unique-constraint
有人可以帮我吗?
id | Name
--------
1 | aaa
2 | bbb
3 | aaa
>alter table arc add CONSTRAINT uk_arc UNIQUE (NAME) novalidate
error :ora-02299: cannot validate( .uk_arc ) - duplicate keys found
Run Code Online (Sandbox Code Playgroud)
我使用novalidate忽略旧的重复并开始重新验证.
如果我正确地告诉您,您希望Oracle忽略旧的重复值,并仅在满足约束时允许新值.返回错误是因为当您添加UNIQUE约束时,Oracle会在列上创建唯一索引以检查值,但是您的表已经具有重复值,因此它会失败.我首先创建非唯一索引,然后添加约束,以便它使用您现有的非唯一索引,而不是自动创建将失败的唯一索引:
create index arc_ix on arc (name);
alter table arc add constraint arc_uq unique (name) enable novalidate;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
10660 次 |
| 最近记录: |