2011-06-02 67 views
0

的数量我有一个代表用户的条目表:SQL - 插入和限制条目

User_ID | Entry_ID 

现在我只想存储最后20个条目(例如)。

插入新条目的最佳方式是什么,同时每个用户的最大条目数保持在20(新条目将替换最旧的条目)?

我需要能够插入也是项目的列表,以取代旧的(如果可能的话,以避免多个SQL请求)

+0

为什么不调用存储过程,在该SP中删除旧条目并插入新条目。你正在使用哪个DBMS? – 2011-06-02 07:41:20

+0

我正在使用SQLite – 2011-06-02 07:56:26

+1

如果用户有17个条目并需要添加4个新条目,那么您如何选择删除17条中的哪条?提示:您需要另外一个列(“effective_date”,“sequence_number”),它对每个用户的每个条目都是唯一的。 – onedaywhen 2011-06-02 09:15:07

回答

4

听起来像一个trigger工作...

添加插入触发器后的语句级别,删除如下行:

delete from yourtbl 
where yourid not in (
    select yourid from yourtbl order by yourid desc limit 20 
)