My Mysql テーブルは create multiple triggers をサポートしていません。しかし、3 つの更新クエリに対して 3 つのトリガーがあります。単一のトリガーを使用してこれらのトリガーを実行するにはどうすればよいですか?
エラー:#1235 - このバージョンの MySQL は、「1 つのテーブルに対して同じアクション時間とイベントを持つ複数のトリガー」をまだサポートしていません。
ありがとう
CREATE TRIGGER `update_yeild2` BEFORE UPDATE ON `today_plan`
FOR EACH ROW SET NEW.yeild = COALESCE((SELECT kiln_master.yeild
FROM kiln_master
WHERE NEW.itemno = kiln_master.item
AND NEW.pattern = kiln_master.pattern
LIMIT 1), 0)
CREATE TRIGGER `update_yeild1` BEFORE UPDATE ON `today_plan`
FOR EACH ROW SET NEW.temp = COALESCE((SELECT kiln_master.temp
FROM kiln_master
WHERE NEW.itemno = kiln_master.item
AND NEW.pattern = kiln_master.pattern
LIMIT 1), 0)
CREATE TRIGGER `update_yeild0` BEFORE UPDATE ON `today_plan`
FOR EACH ROW SET NEW.kiln = COALESCE((SELECT kiln_master.kiln
FROM kiln_master
WHERE NEW.itemno = kiln_master.item
AND NEW.pattern = kiln_master.pattern
LIMIT 1), 0)
更新されたコード:
CREATE TRIGGER `update_yeild2` BEFORE UPDATE ON `today_plan`
FOR EACH ROW
BEGIN
SET NEW.yeild = COALESCE((SELECT kiln_master.yeild
FROM kiln_master
WHERE NEW.itemno = kiln_master.item
AND NEW.pattern = kiln_master.pattern
LIMIT 1), 0);
SET NEW.temp = COALESCE((SELECT kiln_master.temp
FROM kiln_master
WHERE NEW.itemno = kiln_master.item
AND NEW.pattern = kiln_master.pattern
LIMIT 1), 0);
SET NEW.kiln = COALESCE((SELECT kiln_master.kiln
FROM kiln_master
WHERE NEW.itemno = kiln_master.item
AND NEW.pattern = kiln_master.pattern
LIMIT 1), 0);
END
ありがとう
作業コード : ありがとう RandomSeed
delimiter //
CREATE TRIGGER `update_yeild2` BEFORE UPDATE ON `today_plan`
FOR EACH ROW
BEGIN
SET NEW.yeild = COALESCE((SELECT kiln_master.yeild
FROM kiln_master
WHERE NEW.itemno = kiln_master.item
AND NEW.pattern = kiln_master.pattern
LIMIT 1), 0);
SET NEW.temp = COALESCE((SELECT kiln_master.temp
FROM kiln_master
WHERE NEW.itemno = kiln_master.item
AND NEW.pattern = kiln_master.pattern
LIMIT 1), 0);
SET NEW.kiln = COALESCE((SELECT kiln_master.kiln
FROM kiln_master
WHERE NEW.itemno = kiln_master.item
AND NEW.pattern = kiln_master.pattern
LIMIT 1), 0);
END
//
delimiter ;