Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何限制mysql表中的行数,并覆盖从第一行插入的新行数?_Mysql_Sql_Database - Fatal编程技术网

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

如何限制mysql表中的行数,并覆盖从第一行插入的新行数?,mysql,sql,database,Mysql,Sql,Database,e、 g:我创建了一个日志表,我想保留1000条记录的行数限制 …如果我在1000行之后插入一条记录,我的行应该通过删除或其他方式从第一行开始。 mysql中有什么解决方案吗 任何人都可以提供帮助没有超简单的解决方案,但这是可能的。基本上,你需要做两件事 第一个是跟踪行插入表的顺序。SQL表表示无序集,因此需要显式地包括这种排序。一个简单的方法是表的自动递增id 第二种方法是将触发器添加到insert。插入新行时,此触发器将删除一行。我建议此触发器为插入后触发器 您也可以在应用程序层执行此操作。

e、 g:我创建了一个日志表,我想保留1000条记录的行数限制 …如果我在1000行之后插入一条记录,我的行应该通过删除或其他方式从第一行开始。 mysql中有什么解决方案吗


任何人都可以提供帮助

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

第一个是跟踪行插入表的顺序。SQL表表示无序集,因此需要显式地包括这种排序。一个简单的方法是表的自动递增id

第二种方法是将触发器添加到
insert
。插入新行时,此触发器将删除一行。我建议此触发器为插入后触发器

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


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

创建具有时间戳列的表。插入1000行。更新表格,仅更新具有最早时间戳的行,或者,如果时间戳相等,则更新具有最低id的行。请尝试使用适当的语法。先生,您可以给我发送一个示例plz:在我的项目中,我已经创建了一个表格,并且已经保持列id的自动增量…我可以跟踪和检查,如果行数达到限制1000,那么我需要从1更新到1000,而不是在此处插入。我不想删除表中的任何行,只需插入和更新