我在我的iPhone应用程序中使用FMDB(相当新!)并希望将表中的行数限制为某个值。每当我插入新记录时,我想检查一些maxNumberOfEntries是否被过时,如果是,则删除最旧的条目。我尝试了以下方法:
(...)
[db beginTransaction];
[db executeUpdate: @"DELETE FROM table_name WHERE someId = ? ORDER BY date LIMIT 10", [NSNumber numberWithInt: 123], nil];
[db commit];
(...)
但似乎sqlite无法识别查询的“LIMIT”部分。如何在不直接指定要删除的条目的情况下设法删除表中的特定行数?
答案 0 :(得分:1)
我没有尝试过,但它可能是相关的。
有一个名为SQLITE_ENABLE_UPDATE_DELETE_LIMIT的编译标志,它启用了该功能:
http://sqlite.org/compile.html#enable%5Fupdate%5Fdelete%5Flimit
这是一篇相关的SO帖子:
How do you enable LIMIT for DELETE in SQLite?
在相关帖子中,您可以在select语句中使用delete where id,并在select:
中尝试限制