Bạn có thể truy vấn ALL_CONSTRAINTS
chế độ xem hiệu suất
để xem ràng buộc nào mà chỉ mục được sử dụng và nó áp dụng cho bảng nào, ví dụ:
select owner, constraint_name, constraint_type,
table_name, index_owner, index_name
from all_constraints
where index_name = 'PK_CHARGES';
Tôi mong đợi tên bảng là 'CHARGES', tên ràng buộc khớp với tên chỉ mục và kiểu ràng buộc là 'P'. Nhưng vì bạn có một bảng trong tâm trí, có lẽ các tên không tuân theo một quy ước hữu ích. Có thể một phiên bản cũ của bảng đã được đổi tên, điều này sẽ để lại những hạn chế đối với tên mới (ví dụ:CHARGES_BACKUP
hoặc cái gì đó).
Bạn nói rằng bạn nhấp vào bảng, sau đó nhấp vào xem. Có lẽ bạn không nhìn vào bảng có ràng buộc / chỉ mục; hoặc có lẽ bạn đang xem một chế độ xem trên đầu bảng thực tế. Bạn cũng đề cập đến một SYS_
chỉ mục trên các cột giống nhau - không thể nằm trên cùng một bảng. Bạn có nhiều bảng tương tự hay quyền truy cập vào nhiều lược đồ? Bạn cũng chạy truy vấn trên cho chỉ mục đó. Như đã đề cập ở trên, bạn có thể tìm thấy phiên bản cũ (hoặc các phiên bản) của bảng.
Khi bạn đã xác định bảng nào bị ràng buộc, bạn sẽ cần quyết định xem bạn có thực sự nên giữ nó hay không, và nếu không, bạn có thể xóa nó bằng cách bỏ ràng buộc bằng ALTER TABLE
lệnh.