MySQLデータベースのトリガに少し問題があります。私は2つのテーブルを持つDBを持っています: "仕事"と "ファイル"。 「タスク」テーブルは、「ファイル」テーブルからの主キーの外部キーであるフィールドを有する。時にはnullになることもあります。MySQLのselect文の結果が削除後のトリガーに常にnull
私が遂行しようとしているのは、最初に「タスク」テーブルの行を削除し、その後にトリガーを使用して「ファイル」テーブルの対応する行を削除することです。
これは私が今使っているトリガーです:
DELIMITER //
CREATE TRIGGER after_delete_file AFTER DELETE ON tasks
FOR EACH ROW
BEGIN
DECLARE fileId int;
SELECT file INTO fileId FROM tasks WHERE id=old.id;
DELETE FROM files WHERE id=fileId;
END;//
DELIMITER ;
「タスク」テーブルのフィールド「ファイル」は、外部キーを含むものです。私が実行している例では、そのフィールドは決してnullではありません。
問題は、select文は常にnullを返すことです。このトリガをトリガするdelete文は正常に実行されますが、 "ファイル"テーブルの行は決して削除されません。私はテストテーブルに "fieldId"変数を挿入しようとしましたが、常にnull値を保存しています。
トリガーに問題はありますか?たぶん私は不可能な何かをしようとしているのだろうか?
すべてのヘルプははるかに高く評価される:)
こんにちは! はい、私はもっと多くの答えを読むことを実現しました。私は以前はそれを考えなかったとは思えません。 ありがとう! – gascon95