我有一张桌子:
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
);
当该表中的一行被删除时,它所引用的文件也应该被删除。从该表中删除记录有两种情况:
- 用户删除一张特定照片。
- 用户删除一个特定的属性对象(如“房地产”),所有引用该属性的照片都会被自动删除
ON DELETE CASCADE
。
我知道我可以在删除属性之前选择数据库中所有引用的照片并将它们连同文件一起删除,但我正在寻找替代解决方案。photo
是否有可能捕捉到删除表中的记录并自动删除文件的时刻,而不用退出CASCADE
子句,也许在触发器中以某种方式?