Đây không phải là một câu trả lời cho câu hỏi vì nó là sự biện minh cho loại chức năng này - do đó phủ nhận những người sẽ nói "bạn nên làm điều gì đó khác" hoặc "tại sao bạn muốn".
Tôi có một cơ sở dữ liệu mà tôi đang cố gắng tuân theo các quy tắc nghiêm ngặt - Tôi không muốn trẻ mồ côi ở bất cứ đâu. Kiểm tra tính toàn vẹn tham chiếu giúp tôi điều này ở cấp bảng, nhưng tôi phải giữ một số dữ liệu dưới dạng tệp trong hệ thống tệp (đây là kết quả từ lệnh trực tiếp từ sếp của tôi là không lưu trữ bất kỳ dữ liệu nhị phân nào trong chính cơ sở dữ liệu).
Giải pháp rõ ràng ở đây là có một trình kích hoạt kích hoạt khi xóa bản ghi, sau đó sẽ tự động xóa tệp bên ngoài được liên kết.
Bây giờ, tôi nhận ra rằng UDF có thể cung cấp một giải pháp, nhưng điều đó có vẻ như rất nhiều C / C ++ hoạt động để xóa một tệp. Chắc chắn rằng bản thân các quyền cơ sở dữ liệu sẽ cung cấp ít nhất một số bảo mật khỏi những kẻ tấn công.
Bây giờ, tôi nhận ra rằng tôi có thể viết một tập lệnh shell hoặc một số như vậy có thể xóa bản ghi bảng và sau đó xóa tệp liên quan, nhưng một lần nữa, nó nằm ngoài miền của cơ sở dữ liệu chính nó . Như một người hướng dẫn cũ đã từng nói với tôi "các quy tắc của doanh nghiệp nên được phản ánh trong các quy tắc của cơ sở dữ liệu". Như mọi người có thể thấy rõ, tôi không thể thực thi điều này bằng MySQL.