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

Lý do / hữu ích là gì khi sử dụng từ khóa ENABLE trong các câu lệnh cơ sở dữ liệu oracle

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:

  1. Tắt trạng thái.

  2. Thực hiện thao tác (tải, xuất, nhập).

  3. 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:

  1. Để rõ ràng (Quy tắc EIBTI trong Python Rõ ràng Tốt hơn Ngụ ý )
  2. Để có sự hoàn thiện
  3. 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.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. OdbcConnection trả về các ký tự Trung Quốc là?

  2. Tạo chèn sql vào cho Oracle

  3. 2 cách để có được một ngày trong Oracle

  4. dbms_output.put_line

  5. Làm cách nào để bạn nhận được các kết quả được định dạng độc đáo từ một thủ tục Oracle trả về một con trỏ tham chiếu?