こんにちは、みんな :)!
基本的に、parent_id 列を介して自身を参照するテーブルが 1 つあります。テーブルの各行は親を持つことができ、count 列を介していくつの子を持つかを数えることができます。したがって、本質的に私がやろうとしているのは、必要に応じてトリガーが各親行のカウント列を更新することです
問題は、挿入トリガーの更新操作が呼び出されると、更新トリガーが呼び出されることです。それから私は得る:
「一般エラー: 1442 このストアド関数/トリガーを呼び出したステートメントで既に使用されているため、ストアド関数/トリガーのテーブル 'term_taxonomies' を更新できません」 .
何か案は?
実際のコード:
TRIGGER `dbname`.`ai_term_taxonomies`
AFTER INSERT ON `dbname`.`term_taxonomies`
行ごとに
始める
IF NEW.parent_id NOT 0 THEN
UPDATE term_taxonomies as termTax SET assocItemCount = (assocItemCount + 1)
WHERE termTax.term_taxonomy_id = NEW.parent_id;
END IF;
END$$
作成
TRIGGER `dbname`.`au_term_taxonomies`
`dbname`.`term_taxonomies` の更新後
行ごとに
始める
IF NEW.parent_id NOT OLD.parent_id THEN
IF NEW.parent_id NOT 0 THEN
UPDATE term_taxonomies as termTax SET assocItemCount = (assocItemCount + 1)
WHERE termTax.term_taxonomy_id = NEW.parent_id;
END IF;
IF OLD.parent_id NOT 0 THEN
UPDATE term_taxonomies as termTax SET assocItemCount = (assocItemCount - 1)
WHERE termTax.term_taxonomy_id = OLD.parent_id;
END IF;
END IF;
END$$