有什么方法可以使用SQL命令删除文件? 我在文件系统中有图像文件,并在DB中链接到它们。例如:
CREATE TABLE products ( id INT UNSIGNED NOT NULL AUTO_INCREMENT, name TINYTEXT NOT NULL, category INT UNSIGNED NOT NULL, FOREIGN KEY (category) REFERENCES categories(id) ON DELETE CASCADE, ............ ) ENGINE=InnoDB; CREATE TABLE images ( id INT UNSIGNED NOT NULL AUTO_INCREMENT, img_link TINYTEXT, /*path and name of JPG/PNG file*/ product INT UNSIGNED NOT NULL, FOREIGN KEY (product) REFERENCES products(id) ON DELETE CASCADE, ............ ) ENGINE=InnoDB;
删除类别\产品后,删除属于已删除类别\产品的图像的链接。(因为’ON DELETE CASCADE’) 但是我也需要删除文件本身。就像是:
CREATE TRIGGER del BEFORE DELETE ON images FOR EACH ROW CALL delete_file(OLD.img_link);
当然可以创建必须删除的所有文件的表。我问是否有任何实时方法。 谢谢
您不能在MySQL内部执行此操作。它可以影响文件的唯一操作是在SELECT ... INTO OUTFILE ...查询中创建新文件。没有处理外部文件的功能,更不用说删除它们了。
SELECT ... INTO OUTFILE ...