首页 > 解决方案 > MariaDB 使用 TRIGGER 将数据移动到另一个表

问题描述

当更新值为“jakarta”时,我想将当前数据移动到另一个表



IF NEW.alamat = "jakarta" THEN
    INSERT INTO detail_mhs_copy1
    SELECT * FROM detail_mhs WHERE id_mhs = NEW.id_mhs;
    
    DELETE FROM detail_mhs WHERE id_mhs = OLD.id_mhs;
END IF;

但是有了这个触发器,它的 make 错误就像这样
1442 - Can't update table 'detail_mhs' in stored function/trigger 因为它已经被调用这个存储函数/触发器的语句使用了

任何解决方案?

标签: mysqlmariadb

解决方案


请尝试以下触发器并使用您的列名更改 col1 和 col2,并使用具有主键且未更新的列名更改主键。

分隔符 $$

如果NEW.alamat = "jakarta"然后插入 detail_mhs_copy1(col1,col2, alamat) VALUES(old.col1, old.col2, new.alamat),则在每行更新detail_mhs 后创建触发器 detail_mhs_trig ;万一; 结束$$

分隔符;


推荐阅读