在使用mysql触发器更新同一表中的行时插入新行

wsewodh2  于 2021-06-20  发布在  Mysql
关注(0)|答案(1)|浏览(503)

我正在尝试在更新同一个表中的行之后将行插入到表中。我试着用扳机。但我发现用这种方法是不可能做到的。
我想要达到的是,我有这个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 ;
11dmarpk

11dmarpk1#

更新表时,此触发器将执行并在表中插入新记录。
请参阅此链接

相关问题