如何使用'LIMIT'从表中删除行

时间:2011-10-23 13:21:59

标签: ios iphone sqlite sql-delete

我在我的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”部分。如何在不直接指定要删除的条目的情况下设法删除表中的特定行数?

1 个答案:

答案 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:

中尝试限制

How can I delete data with specific row number (sqlite)