Tôi đã có một hạn chế trong một bảngTìm ma chế từ Oracle DB
CREATE TABLE "USERSAPPLICATIONS" (
"USERID" NUMBER NOT NULL ,
"APPLICATIONNAME" VARCHAR2 (30) NOT NULL ,
CONSTRAINT "PK_USERSAPPLICATIONS" PRIMARY KEY ("USERID","APPLICATIONNAME")
)
/
Hai tuần trước, tôi sửa đổi bàn, bổ sung một số cột, xóa các hạn chế "PK_USERSAPPLICATIONS" và nói thêm một phím thay thế. Tôi có thể thấy trong Oracle SQL Developer rằng ràng buộc PK_USERSAPPLICATIONS không tồn tại nữa.
Bất kể rằng, khi tôi cố gắng thêm hai mục với sự kết hợp cùng userid/applicationName, tôi nhận được một lỗi
SQL Error: ORA-00001: unique constraint (ACCOUNTMP1.PK_USERSAPPLICATIONS) violated
00001. 00000 - "unique constraint (%s.%s) violated"
*Cause: An UPDATE or INSERT statement attempted to insert a duplicate key.
For Trusted Oracle configured in DBMS MAC mode, you may see
this message if a duplicate entry exists at a different level.
*Action: Either remove the unique restriction or do not insert the key.
Khi tôi thực hiện báo cáo kết quả
SELECT *
FROM user_cons_columns
WHERE constraint_name = 'PK_USERSAPPLICATIONS'
tôi nhận zero hàng . Làm thế nào mà có thể được? Oracle không nên có bất kỳ kiến thức nào về ràng buộc PK_USERSAPPLICATIONS vì nó đã bị xóa trước đó vài tuần và tôi cũng không thể thấy nó trong cơ sở dữ liệu.
+1. Tại chỗ trên. Không bao giờ nghĩ theo cách đó. – Guru
Câu trả lời rất hay và kỹ lưỡng. Đó là nó - ngớ ngẩn chỉ số được đặt tên chính xác như ràng buộc trong trường hợp của tôi. – simon
Cảm ơn bạn. Sau khi tìm thấy chỉ mục, tôi thả nó bằng một kịch bản khác DROP INDEX PK_USERSAPPLICATIONS; – Coisox