2

列を持つmysqlテーブル「市場」があります

  1. open_time (日時),
  2. session_num (整数),
  3. 期間(整数)、
  4. end_time (日時)。

[open_time、session_num、duration] のいずれかが更新された場合に、close_time の値を自動的に計算して更新するトリガーを作成したいと考えています。

私が欲しいend_time = open_time + session_num * duration;

以下のようなトリガーを作成しました。

CREATE TRIGGER `update` BEFORE UPDATE ON `market`
FOR EACH ROW BEGIN
    SET new.end_time = new.open_time + new.duration * new.session_num;
END

ただし、open_time を更新すると、次のエラーが発生します。

#1436 - Thread stack overrun:  13080 bytes used of a 131072 byte stack, and 128000 bytes needed.  Use 'mysqld --thread_stack=#' to specify a bigger stack.

どうすれば解決できますか?ありがとう。

4

2 に答える 2