0

MySQLでは、このトリガーを作成して、1つのテーブルに関連する新しいレコードがリンクテーブルに挿入された場合に、そのテーブルの最終変更日を設定しました。

create trigger trg_badge after insert on tbl_badge for each row 
UPDATE tbl_sub_model SET last_modified_date = NOW() 
WHERE sub_model_sk = NEW.sub_model_sk;

いっぱいtbl_sub_modelになるスクリプトを実行すると、次のtbl_badgeようになります。

Error Code: 1442. Can't update table 'tbl_sub_model' in stored 
function/trigger because it is already used by statement which 
invoked this stored function/trigger.

別のスクリプトを使用して挿入すると問題なく動作しますが、両方のステートメントが同じスクリプトに含まれている場合は正常に機能しません。同じ.sqlスクリプトを使用して両方のテーブルに挿入する方法はありますか?

4

1 に答える 1

0

ああ...それを解決しました。私の挿入ステートメントは、正しい新しいレコードに関連するsub_model_skを取得するために、tbl_sub_modelを他のいくつかのステートメントに結合していました。

これで、スクリプトの最後にトリガーを作成するだけで、大したことはないことがわかりました。

于 2012-11-18T07:57:21.980 に答える