0

新しいエントリが保存されるたびにエラーをスローするトリガーを作成しました。トリガーは次のとおりです。

CREATE TRIGGER `htmlid` BEFORE INSERT ON `makelist_food`
FOR EACH ROW BEGIN
IF (NEW.html_id IS NULL) THEN
  INSERT INTO makelist_food SET html_id = CONCAT('f', NEW.id);
END IF;
END

エラーは次のとおりです。#1442-ストアド関数/トリガーのテーブル'makelist_food'は、このストアド関数/トリガーを呼び出したステートメントによって既に使用されているため、更新できません。

このエラーについては多くの議論がありますが、解決策や回避策は見つかりませんでした。これは2010stackoverflow.com/questions/1582683/mysql-trigger-stored-trigger-is-already-used-by-statement-which-invoked-stored-tからの回答であり、これはMySQLではサポートされていないことを示しています。

これは2年以上前の回答なので、SOがこの問題の回避策を知っているかどうか疑問に思いました。何も見つかりませんでした。

4

1 に答える 1

1

たまたま意味がありますか

IF (NEW.html_id IS NULL) THEN
    SET NEW.html_id = CONCAT('f', NEW.id);
END IF;
于 2012-07-29T19:18:50.293 に答える