Моя таблица Mysql не поддерживает создание нескольких триггеров. но у меня есть 3 триггера для трех запросов на обновление, как я могу запустить эти триггеры, используя один триггер,
ОШИБКА: # 1235 - Эта версия MySQL еще не поддерживает «несколько триггеров с одинаковым временем действия и событием для одной таблицы».
Благодарность
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 ;