2011-06-29 9 views
1

SQLコマンドを使用してファイルを削除する方法はありますか?
ファイルシステムにイメージファイルがあり、DBにリンクされています。例:MySQLの手順を使用してファイルを削除

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

もちろん、削除する必要があるすべてのファイルのテーブルを作成することができます。私はリアルタイムでそれを行う方法があるかどうか尋ねます。
ありがとう

答えて

2

これはMySQL内では実行できません。ファイルに影響を与えることができるのは、SELECT ... INTO OUTFILE ...クエリの一部として新しいものを作成することだけです。外部ファイルを操作する機能はありませんが、削除はできません。

関連する問題