我正在尝试在更新同一个表中的行之后将行插入到表中。我试着用扳机。但我发现用这种方法是不可能做到的。
我想要达到的是,我有这个tbl\u eq\u维护(eq\u no,eq\u name,last\u rep\u date,next\u rep\u date,status)
数值(eq-30,跑步机,08-10-2018,18-10-2018,0)。
我想将此行的状态更新为“1”,然后在同一个表中插入新行,如下所示(eq-30,跑步机,2018年10月18日,2018年10月28日,0)。我如何才能做到这一点与触发器或如果不能有一个解决办法。
我写的触发器如下。
DELIMITER $$
CREATE TRIGGER add_maintenance
AFTER UPDATE on tbl_eq_maintenance
FOR EACH ROW
BEGIN
DECLARE next_rep_date DATE;
DECLARE new_m_cycle INT(5);
SELECT m_cycle INTO new_m_cycle FROM tbl_equipments WHERE eq_no = NEW.eq_no;
SET next_rep_date = DATE_ADD(CURDATE(), INTERVAL new_m_cycle DAY);
INSERT INTO tbl_eq_maintenance (eq_no,eq_name,last_rep_date,next_rep_date)
Values (NEW.eq_no,NEW.eq_name,CURDATE(),next_rep_date);
END$$
DELIMITER ;
1条答案
按热度按时间11dmarpk1#
更新表时,此触发器将执行并在表中插入新记录。
请参阅此链接