如何限制mysql表中的行并覆盖从第1行插入的新行?

时间:2016-06-15 10:20:31

标签: mysql sql database

例如:我创建了一个logtable,我希望保留1000条记录的行数限制 ...如果我在1000行之后插入一条记录,那么我的行应该从第一行开始,通过删除或者它是什么。 是mysql中的任何解决方案

任何人都可以帮助

1 个答案:

答案 0 :(得分:0)

没有超级简单的解决方案,但这是可能的。基本上,你需要做两件事。

第一个是跟踪行插入表中的顺序。 SQL表表示无序集,因此需要明确包含此顺序。一个简单的方法是表的自动递增id。

第二种是向insert添加触发器。插入新行时,此触发器将删除一行。我建议这个触发器是之后的插入触发器。

您也可以在应用层执行此操作。例如,如果使用存储过程插入新行,则存储过程可以执行delete以及insert

最后,如果目标只是摆脱旧数据,还有其他选择。例如,您可以考虑对表进行分区或调度作业(事件)以定期删除多余的行。