Tôi đang cố gắng phân tích cú pháp MySQL docs. Họ có thể rõ ràng hơn. Những gì họ dường như đang nói là có năm khả năng: SET NULL, NO ACTION, RESTRICT, CASCADE và SET DEFAULT.Hành vi DELETE mặc định của MySQL là gì?
KHÔNG HÀNH ĐỘNG và RESTRICT làm điều tương tự (ngăn chặn bất kỳ thay đổi DB nào phá vỡ FK) và điều đó là mặc định vì vậy nếu bạn bỏ qua mệnh đề ON DELETE, bạn đang nói KHÔNG CÓ ACTION (hoặc RESTRICT - điều tương tự) .
SET NULL cho phép xóa hàng gốc, đặt FK thành NULL.
CASCADE xóa hàng con.
SET DEFAULT không bao giờ được sử dụng.
Điều này chính xác hơn hay ít hơn?
Bạn đã bỏ lỡ tùy chọn CASCADE – jitter
Và bạn đã hiểu chính xác. Không chỉ định tùy chọn tham chiếu trên một ràng buộc FK trong MYSQL cũng giống như nói rằng ON DELETE RESTRICT – jitter
Nó chỉ trong mysql rằng KHÔNG có ACTION và RESTRICT số tiền cho cùng một điều. Trong một DB khác mà tôi không giữ đúng, vì NO ACTION về mặt lý thuyết cho phép xóa/thay đổi cha mẹ được tham chiếu nếu ở cuối hoạt động, ràng buộc FK không bị vi phạm – jitter