私はdb関連の部分の経験者ではありません。これが私の疑問です。私はMySQLを使用しています私は2つのテーブルを想定しています
- プロジェクト (列:-pid、folder_id、p_name)
- フォルダ(列:-folder_id、name)
そして、テーブルプロジェクト用に2つのトリガーを作成しました
- trgr_project_before_insert
- trgr_project_before_update
そして、フォルダとプロジェクトには外部キーの関係があります。つまり、テーブルのfolder_idはfolder
「プロジェクト」テーブルを参照しています。そして、プロジェクトテーブルで「Setnull」を使用して「 ONDELETE」アクションを設定しました。つまり、テーブルで「folder_id」が削除されると、MySQLは「 folder_id」folder
を削除した行にNULLを設定します。
そして、私の「trgr_project_before_update」トリガーには、チェックするコードがあります
NEW.folder_id IS NULL THEN
--some code are here
END IF;
フォルダテーブルから「 folder_id」を1つ削除すると、すべての行で「folder_id」がNULLに設定され、テーブルが更新されると思います。しかし、トリガー「trgr_project_before_update」が機能しません(私のチェック内のコード)それはなぜですか。