Ios 如何使用';限制';
我在我的iPhone应用程序中使用FMDB(非常新!),希望将表中的行数限制为某个特定值。每当我插入新记录时,我都要检查是否超出了某些maxNumberOfEntries,如果超出,则删除最旧的条目。我尝试了以下方法:Ios 如何使用';限制';,ios,iphone,sqlite,sql-delete,Ios,Iphone,Sqlite,Sql Delete,我在我的iPhone应用程序中使用FMDB(非常新!),希望将表中的行数限制为某个特定值。每当我插入新记录时,我都要检查是否超出了某些maxNumberOfEntries,如果超出,则删除最旧的条目。我尝试了以下方法: (...) [db beginTransaction]; [db executeUpdate: @"DELETE FROM table_name WHERE someId = ? ORDER BY date LIMIT 10", [NSNumber numberW
(...)
[db beginTransaction];
[db executeUpdate: @"DELETE FROM table_name WHERE someId = ? ORDER BY date LIMIT 10", [NSNumber numberWithInt: 123], nil];
[db commit];
(...)
但sqlite似乎无法识别“限制”——查询的一部分。如何在不直接指定要删除的条目的情况下删除表中一定数量的行?我没有尝试过,但可能与此相关 有一个名为SQLITE_ENABLE_UPDATE_DELETE_LIMIT的编译标志,它启用了该功能: 以下是一篇相关的SO帖子: 在相关文章中,您可以在select语句中使用delete where id,并在select语句中尝试限制:
我没有尝试过这个,但可能与此相关 有一个名为SQLITE_ENABLE_UPDATE_DELETE_LIMIT的编译标志,它启用了该功能: 以下是一篇相关的SO帖子: 在相关文章中,您可以在select语句中使用delete where id,并在select语句中尝试限制:
限制开始,范围,因此如果要删除前30个,请执行限制0,30。请记住,如果要保留第一个,但仍要删除30个,则它将变为限制1,30,而不是限制1,31,这对我不起作用。没有限制部分,我删除所有someId=123的条目,使用它我什么也不删除。限制开始,范围,所以如果你想删除前30个,请限制0,30记住,如果你想保留前30个,但仍然要删除30个,它将变为限制1,30,而不是限制1,31对我不起作用。如果没有限制部分,我会删除someId=123的所有条目,使用它我什么也不删除。