Como excluir arquivos quando um registro é excluído?
Eu tenho uma mesa:
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
);
Quando uma linha desta tabela é excluída, o arquivo que é referenciado por ela também deve ser excluído. Existem dois cenários em que os registros são excluídos desta tabela:
O usuário exclui uma foto específica.O usuário exclui um objeto de propriedade específico (como em "propriedade imobiliária") e todas as fotos que fazem referência a essa propriedade são excluídas automaticamente porON DELETE CASCADE
.Eu sei que posso selecionar todas as fotos referenciadas no banco de dados antes de excluir uma propriedade e excluí-las junto com seus arquivos, um por um, mas estou procurando uma solução alternativa. É possível pegar o momento em que um registro nophoto
tabela é excluída e excluir o arquivo automaticamente, sem renunciar aCASCADE
cláusula, talvez em um gatilho de alguma forma?