2011-02-25 53 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