Oracle
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Oracle

Không thể xác thực, với tùy chọn không xác thực

Bạn không thể có các giá trị không phải là duy nhất với một chỉ mục duy nhất. Nhưng bạn có thể có các giá trị không phải duy nhất với một ràng buộc duy nhất được thực thi bởi một chỉ mục không phải duy nhất. Ngay cả khi ban đầu bạn đã tạo một chỉ mục không phải là duy nhất, thì drop indexenable cú pháp sẽ cố gắng tạo lại một chỉ mục duy nhất trừ khi bạn cung cấp thêm chi tiết trong using index phần.

Ví dụ:

SQL> create table my_table(my_column number,
  2     constraint my_constraint unique (my_column));

Table created.

SQL> alter table my_table disable constraint my_constraint drop index;

Table altered.

SQL> insert into my_table select 1 from dual union all select 1 from dual;

2 rows created.

SQL> alter table my_table enable novalidate constraint my_constraint;
alter table my_table enable novalidate constraint my_constraint
*
ERROR at line 1:
ORA-02299: cannot validate (USER.MY_CONSTRAINT) - duplicate keys found


SQL> alter table my_table enable novalidate constraint my_constraint
  2     using index (create index my_index on my_table(my_column));

Table altered.

SQL> --The constraint is enforced, even though other rows violate it.
SQL> insert into my_table values(1);
insert into my_table values(1)
*
ERROR at line 1:
ORA-00001: unique constraint (USER.MY_CONSTRAINT) violated


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Làm thế nào để hiển thị kích thước lược đồ Oracle với truy vấn SQL?

  2. Gọi một thủ tục PL / SQL khác trong một thủ tục

  3. Tên Ràng buộc Mặc định trong Oracle là gì?

  4. Tính toán chênh lệch giữa 2 ngày / giờ trong Oracle SQL

  5. 3 cách kiểm tra kiểu dữ liệu cột trong Oracle