mysql - 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 因为它已经被调用这个存储函数/触发器的语句使用了
任何解决方案?
解决方案
请尝试以下触发器并使用您的列名更改 col1 和 col2,并使用具有主键且未更新的列名更改主键。
分隔符 $$
如果NEW.alamat = "jakarta"然后插入 detail_mhs_copy1(col1,col2, alamat) VALUES(old.col1, old.col2, new.alamat),则在每行更新detail_mhs 后创建触发器 detail_mhs_trig ;万一; 结束$$
分隔符;