我有一个有 4 列的表:
ID、GUID、二进制、时间戳。
我的目标是将二进制文件的最后 10 次修改保存到数据库中。如果插入第 11 个修改,则应删除最旧的修改。
我目前的方法是分两步完成(伪 mssql):
1) DELETE FROM mytable WHERE GUID = 'XXX' AND
ID NOT IN (SELECT TOP 9 ID FROM mytable WHERE GUID = 'XXX' ORDER BY Timestamp)
2) INSERT new binary ...
有没有办法更有效地做到这一点,也许用一个语句?有没有办法让它同时兼容 mssql 和 postgresql(没有 TOP / Limit)?