2011-02-25 29 views
1

如何将SQL记录的最大数量设置为10,并在添加新记录时自动删除最后一条记录。MySql中的固定行数

+0

我知道这可能不是重要的,你运行单个查询过去的十年,但为什么你想这样做呢?参加10个最后的参赛作品,或者是10个参赛作品中最高的参赛作品或其他内容,会不会更容易?思考像('select * from sometable order by id desc limit 1') – Ragnar123

回答

2

您可以删除所有记录,除了插入,当你想

delete from table where id < (select * from (select id from table order by id desc limit 9,1) as tab) 
4

在MySQL中没有这样的功能。你必须自己编写它,或者在你的应用程序中,或者在数据库中编写触发器或存储过程。

计算当前的行数(SELECT COUNT(*) FROM table),如果它大于10,请将DELETE FROM table ORDER BY somecol LIMIT 1删除一行。

0

您可以保留所有记录,并且只返回最近的10个记录。然后你写一个清理过程,定期删除旧的。

SELECT * FROM tbl ORDER BY created_at DESC LIMIT 10

1

添加日期/时间字段与插入日期和时间。然后在插入时运行触发器以删除前1行并按降序排序。

+0

但它在C#中是不可能的......如果我在Java中添加日期和时间代码,它会变得复杂。 – lock