CASCADE
Bất cứ khi nào hàng trong tổng thể bảng (tham chiếu) sẽ bị xóa (resp. Cập nhật), các hàng tương ứng của đứa trẻ (tham khảo) bảng với một phù hợp với cột chính nước ngoài sẽ được xóa (resp. cập nhật) là tốt. Điều này được gọi là xóa tầng (resp. Update [2]).
GIỚI HẠN
Một giá trị không thể cập nhật hoặc xóa khi một hàng tồn tại trong một bảng khóa ngoại tham chiếu đến các giá trị trong bảng tham chiếu. Tương tự, một hàng không thể bị xóa miễn là có một tham chiếu đến nó từ một bảng khóa ngoài.
KHÔNG HÀNH ĐỘNG
KHÔNG HÀNH ĐỘNG và RESTRICT rất giống nhau. Sự khác biệt chính giữa NO ACTION và RESTRICT là với NO ACTION, kiểm tra tính toàn vẹn tham chiếu được thực hiện sau khi cố gắng thay đổi bảng. RESTRICT thực hiện kiểm tra trước khi cố gắng thực thi câu lệnh UPDATE hoặc DELETE. Cả hai hành động tham chiếu đều giống nhau nếu kiểm tra tính toàn vẹn tham chiếu thất bại: câu lệnh UPDATE hoặc DELETE sẽ dẫn đến lỗi.
SET NULL
Các giá trị khóa ngoại trong hàng tham khảo được thiết lập để NULL khi hàng tham chiếu được cập nhật hoặc xóa. Điều này chỉ có thể xảy ra nếu các cột tương ứng trong bảng tham chiếu là nullable. Do ngữ nghĩa của NULL, một hàng tham chiếu với NULL trong cột khóa ngoài không yêu cầu hàng được tham chiếu.
Nguồn
2014-12-08 05:50:25
có thể trùng lặp của [Thiết lập khóa ngoại trong phpMyAdmin?] (Http://stackoverflow.com/questions/459312/setting-up-foreign-keys-in-phpmyadmin) –
Tôi đã tìm thấy điều đó và nó đã không ' t đã giúp. Vấn đề được giải quyết ngay bây giờ. – Alex
Ồ, vâng, cả hai bảng (một trong số đó có FK và một bảng được tham chiếu phải là InnoDB, hoặc trong một công cụ giao dịch khác). –