通过触发器将表记录归档到另一个表(将每日表记录移动到每周表,每天)
Posted
技术标签:
【中文标题】通过触发器将表记录归档到另一个表(将每日表记录移动到每周表,每天)【英文标题】:archiving table records to another table by trigger(move daialy table records to weekly table, evry day) 【发布时间】:2011-02-24 00:46:26 【问题描述】:我在mysql 5中写了这个触发器:
create trigger changeToWeeklly after insert on tbl_daily for each row
开始 插入 tbl_weeklly SELECT * FROM 车辆位置 v 其中 v.recivedate 删除 FROM tbl_daily where recivedate 结尾;
我想按日期归档记录,将昨天插入的记录从每日表移动到每周表,将最后一个每周表移动到每月表,并从以前的表中删除这些记录 在每日表中插入时,此触发器出现以下错误: “无法更新存储函数/触发器中的表 'tbl_daily',因为它已被调用此存储函数/触发器的语句使用。”
请帮我解决在相关表中归档旧数据的问题:
将昨天插入的记录移到周表中,如果有可靠的解决方案请告诉我。
【问题讨论】:
【参考方案1】:您不能从同一个表的插入触发器中删除表中的行。无论如何,我建议将触发器中的处理保持在最低限度是非常有利的。
我个人将只有一个插入触发器,在车辆位置表上,他唯一的工作就是将每个插入的行复制到 tbl_daily 存档表。然后,我将有一个单独的 SQL 查询,该查询将被安排在每天结束时自动运行一次,以对您的存档数据执行所需的内务管理:- 即。在月底清除旧的每月数据,在周末将所有行从每周移动到每月,并且在每天结束时将所有行从每天移动到每周。
【讨论】:
以上是关于通过触发器将表记录归档到另一个表(将每日表记录移动到每周表,每天)的主要内容,如果未能解决你的问题,请参考以下文章