次の機能を実行するトリガーをテーブルに作成する必要があります。
- 行を更新する前に、アイテムの価格を確認してください
- 価格が前回の価格から変更されている場合は、アイテムのタイプと関連するテーブル名を持つ別のテーブルから、アイテム名を挿入するテーブル名を選択します。
- 選択したテーブルに項目名を挿入します。
簡単に言えば、アイテムのカテゴリと対応するテーブル名を持つテーブル ( TypeNameTable ) があります。アイテムの価格が変更された場合は、TypeNameTableからテーブル名を取得し、取得したテーブルにアイテム名を挿入する必要があります。 TypeNameTableから。テーブル名を動的に取得すると、テーブルに挿入できません。それを行う方法を提案してください。これが私がやっていることです:
BEGIN
#declare countryTableName varchar(50);
declare itemPrice int;
declare itemTableName text;
IF (New.Price != Old.Price) THEN
SET countryTableName = (select `ItemManager`.`TypeNames`.`TypeTableName`
from `ItemManager`.`TypeNames`
where `ItemManager`.`TypeNames`.`ItemType` = NEW.ItemType);
INSERT INTO `ItemManager`.itemTableName
( `ItemName`, `ItemPrice`,
VALUES
( NEW.Name, New.Price );
END IF;
END$$
エラーが発生します
ItemManager
.itemTableName が存在しません。