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

Ràng buộc trong bảng MYSQL?

Có một số điều về hai ràng buộc mà bạn muốn áp đặt:

  1. Hàng mới được chèn không được có giá trị NULL cho cột Parent_group.

    • Bạn chỉ có thể áp đặt ràng buộc NOT NULL trên một cột nếu nó chứa tất cả các giá trị không phải null. Bạn cần giá trị null trong cột này cho nút gốc.
    • Đối với điều này, bạn có thể sử dụng ràng buộc KIỂM TRA. Đọc thêm về CHECK CONSTRAINT tại đây .
    • Bạn có thể đặt

Điều này sẽ chỉ cho phép giá trị NULL cho nút gốc và sẽ thực thi giá trị NOT NULL cho mọi hàng khác trong bảng.

  1. Thêm một ràng buộc để không thể xóa hàng RootGroup.

    • Bạn đã xác định khóa ngoại giữa parent_grouppkey , cơ sở dữ liệu sẽ tự động thực thi tính toàn vẹn của tham chiếu và cấm nút gốc (hoặc đối với vấn đề đó là bất kỳ nút cha nào) bị xóa. Cơ sở dữ liệu sẽ trả về lỗi nếu cố gắng DELETE trên bất kỳ nút gốc hoặc nút gốc nào.
  2. Đối với điểm được đề cập trong CHỈNH SỬA , bạn có thể đặt một ràng buộc kiểm tra đơn giản trên bảng như
    CHECK (parent_group != pkey) . Điều này sẽ thực hiện công việc cho bạn.

Đọc về cách xác định các ràng buộc khóa ngoại và cách sử dụng chúng để thực thi tính toàn vẹn tham chiếu. Ngoài ra, hãy truy cập liên kết tôi đã đăng ở trên hoặc tại đây trước khi bạn áp dụng các đề xuất này.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Có thể có chỉ mục dựa trên hàm trong MySQL không?

  2. Cách làm cho các bảng MySQL được lập chỉ mục tốt tham gia một cách hiệu quả

  3. Tại sao lại xóa công cụ đặt init_command =INNODB của django DATABASE_OPTIONS sau khi tạo bảng?

  4. Có sử dụng SET NAMES không

  5. mysql (i) _real_escape_string, an toàn để dựa vào?