我在mysql 5中编写了这个触发器:
create trigger changeToWeeklly after insert on tbl_daily for each row
开始
插入到tbl_weeklly SELECT * FROM vehicleslocation v
其中v.recivedate< CURDATE();
删除FROM tbl_daily其中recivedate< CURDATE();
结束;
我希望按日期归档记录,将昨天插入的记录从dailly移动到每周表,将最后一周的表转移到mounthly表并从上一个表中删除此记录 在每日tabled中插入时,此触发器有以下错误: “无法在存储的函数/触发器中更新表'tbl_daily',因为它已被调用此存储函数/触发器的语句使用。”
请帮我解决相关表格中存档旧数据的问题:
将昨天插入的记录移至每周表,如果有可靠的解决方案请告诉我。
答案 0 :(得分:1)
您无法从同一个表的插入触发器中删除表中的行。在任何情况下,我都建议将触发器中的处理保持在最低限度是非常有利的。
我个人在vehiclelocation表上只有一个插入触发器,他唯一的工作就是将每个插入的行复制到tbl_daily存档表中。然后我会有一个单独的SQL查询,它将被安排在每天结束时自动运行一次,以便对您的存档数据执行所需的内务管理: - 即。在月底清除旧的月度数据,在周末将所有行从每周移动到每月,并在每天结束时将所有行从每天移动到每周。