Wie lösche ich Dateien, wenn ein Datensatz gelöscht wird?

Ich habe einen Tisch:

CREATE TABLE photo (
    photo_id BIGINT NOT NULL AUTO_INCREMENT,
    property_id BIGINT NOT NULL,
    filename VARCHAR (50) NOT NULL;
    ...
    PRIMARY KEY (photo_id),
    CONSTRAINT photo_fk_property FOREIGN KEY (property_id)
        REFERENCES property (property_id)
        ON DELETE CASCADE
);

Wenn eine Zeile aus dieser Tabelle gelöscht wird, sollte auch die Datei gelöscht werden, auf die sie verweist. Es gibt zwei Szenarien, in denen Datensätze aus dieser Tabelle gelöscht werden:

Der Benutzer löscht ein bestimmtes Foto.Der Benutzer löscht ein bestimmtes Eigenschaftsobjekt (wie in "Immobilieneigenschaft"), und alle Fotos, die auf diese Eigenschaft verweisen, werden automatisch von gelöschtON DELETE CASCADE.

Ich weiß, dass ich alle referenzierten Fotos in der Datenbank auswählen kann, bevor ich eine Eigenschaft lösche, und sie zusammen mit ihren Dateien einzeln löschen kann, aber ich suche nach einer alternativen Lösung. Ist es möglich, den Moment zu erfassen, wenn eine Aufzeichnung in derphoto Tabelle wird gelöscht und die Datei wird automatisch gelöscht, ohne dass derCASCADE Klausel, vielleicht irgendwie in einen Auslöser?

Antworten auf die Frage(1)

Ihre Antwort auf die Frage