Това не е толкова отговор на въпроса, колкото е оправдание за този вид функционалност - следователно отричане на онези, които биха казали "трябва да направите нещо друго" или "защо бихте искали".
Имам база данни, към която се опитвам да спазвам строги правила - не искам никъде сираци. Проверките за референтна цялост ми помагат с това на ниво таблица, но трябва да запазя някои от данните като файлове във файловата система (това е резултат от директна заповед от моя шеф да не съхранявам никакви двоични данни в самата база данни).
Очевидното решение тук е да имате тригер, който се задейства при изтриване на запис, който след това автоматично изтрива свързания външен файл.
Сега осъзнавам, че UDF може да предостави решение, но това изглежда като много C/C++ работа за просто изтриване на файл. Със сигурност самите разрешения за базата данни биха осигурили поне някои сигурност от евентуални нападатели.
Сега си давам сметка, че мога да напиша шел скрипт или нещо подобно, което може да изтрие записа на таблицата и след това да изтрия свързания файл, но отново, това е извън домейна на самата база данни . Както веднъж ми каза един стар инструктор, "правилата на бизнеса трябва да бъдат отразени в правилата на базата данни". Както можете ясно да видите, не мога да наложа това с помощта на MySQL.