gpt4 book ai didi

mysql - 删除记录后如何删除文件?

转载 作者:可可西里 更新时间:2023-11-01 07:02:12 25 4
gpt4 key购买 nike

我有一张 table :

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
);

当删除该表中的一行时,它引用的文件也应该被删除。删除该表的记录有两种情况:

  1. 用户删除了一张特定的照片。
  2. 用户删除一个特定的属性对象(如“房地产”),所有引用该属性的照片都会被 ON DELETE CASCADE 自动删除。

我知道我可以在删除属性之前选择数据库中所有引用的照片,然后将它们连同它们的文件一张一张地删除,但我正在寻找替代解决方案。是否有可能捕捉到 photo 表中的记录被删除的时刻并自动删除文件,而无需放弃 CASCADE 子句,也许在某种程度上处于触发器中?

最佳答案

您正在寻找 DELETE TRIGGER .参见 here对于类似的问题和解决方案。可以通过安装 sys_exec 来实现外部操作.

CREATE TRIGGER foobar
AFTER DELETE ON photo
FOR EACH ROW
BEGIN
CALL sys_exec(concat('/bin/rm -f ',filename));
END

关于mysql - 删除记录后如何删除文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12600834/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com