Constraint doc
:
CREATE TABLE "EVALUATION" (
"EVALUATION_ID" NUMBER(20, 0) NOT NULL ENABLE,
ENABLE/DISABLE
cho biết ràng buộc đang bật hoặc tắt. Theo mặc định ENABLE
được sử dụng.
Điều khoản BẬT Chỉ định BẬT nếu bạn muốn áp dụng ràng buộc cho dữ liệu trong bảng.
Mệnh đề DISABLE Chỉ định DISABLE để vô hiệu hóa ràng buộc toàn vẹn. Các ràng buộc toàn vẹn bị tắt xuất hiện trong từ điển dữ liệu cùng với các ràng buộc đã bật. Nếu bạn không chỉ định điều khoản này khi tạo một ràng buộc, Oracle sẽ tự động kích hoạt ràng buộc.
Các ràng buộc được sử dụng để đảm bảo tính toàn vẹn của dữ liệu, nhưng có những trường hợp chúng tôi có thể cần phải vô hiệu hóa chúng.
Managing Integrity
:
Vô hiệu hóa các ràng buộc
Để thực thi các quy tắc được xác định bởi ràng buộc toàn vẹn, ràng buộc phải luôn được bật. Tuy nhiên, hãy tạm thời xem xét việc vô hiệu hóa các ràng buộc về tính toàn vẹn của một bảng vì những lý do hiệu suất sau:
Khi tải một lượng lớn dữ liệu vào một bảng
Khi thực hiện các thao tác hàng loạt tạo ra các thay đổi lớn đối với bảng (ví dụ:thay đổi số của mọi nhân viên bằng cách thêm 1000 vào số hiện có)
Khi nhập hoặc xuất từng bảng một
Trong cả ba trường hợp, việc vô hiệu hóa tạm thời các ràng buộc toàn vẹn sẽ không cải thiện hiệu suất của hoạt động, đặc biệt là trong các cấu hình kho dữ liệu.
Có thể nhập dữ liệu vi phạm một ràng buộc trong khi giới hạn đó bị vô hiệu hóa. Do đó, bạn phải luôn bật ràng buộc sau khi hoàn thành bất kỳ thao tác nào được liệt kê trong danh sách đầu dòng trước đó.
Sử dụng hiệu quả các ràng buộc về tính liêm chính:Một quy trình
Sử dụng các trạng thái ràng buộc toàn vẹn theo thứ tự sau có thể đảm bảo lợi ích tốt nhất:
Tắt trạng thái.
Thực hiện thao tác (tải, xuất, nhập).
Bật trạng thái không xác thực.
Một số lợi ích của việc sử dụng các ràng buộc theo thứ tự này là:
Không có ổ khóa nào được giữ.
Tất cả các ràng buộc có thể đồng thời bật trạng thái.
Việc kích hoạt ràng buộc được thực hiện song song.
Hoạt động đồng thời trên bảng được cho phép.
CHỈNH SỬA:
Câu hỏi đặt ra là tại sao lại sử dụng hiển nhiên từ khóa khi nó được bật theo mặc định:
Tôi sẽ nói:
- Để rõ ràng (Quy tắc EIBTI trong Python Rõ ràng Tốt hơn Ngụ ý )
- Để có sự hoàn thiện
- Sở thích cá nhân và / hoặc quy ước mã hóa
Đây là cùng một danh mục với:
CREATE TABLE tab(col INT NULL)
Tại sao chúng tôi sử dụng NULL
nếu cột là nullable theo mặc định.