如何使用 FMDB 从表中删除所有数据
Posted
技术标签:
【中文标题】如何使用 FMDB 从表中删除所有数据【英文标题】:How to remove all data from table using FMDB 【发布时间】:2013-04-04 11:11:43 【问题描述】:我想从我的数据库中的表中删除所有数据。我正在使用 FMDB。我已经使用了此代码,但它不会从我的表中删除数据。
-(BOOL) deleteAll
FMDatabase *db = [FMDatabase databaseWithPath:[Utility getDatabasePath]];
[db open];
BOOL success = [db executeUpdate:@"TRUNCATE TABLE customers"];
[db close];
return success;
return YES;
【问题讨论】:
@DharaParekh 它没有显示任何错误只是数据没有被删除 【参考方案1】:尝试使用此代码。
BOOL success = [db executeUpdate:@"DELETE FROM customers"];
只要我知道 Sqlite 不支持TRUNCATE
查询。
【讨论】:
【参考方案2】:虽然DELETE
命令会起作用,但速度很慢,因为它会选择每一行然后继续删除它。
如果您要删除整个表,最好DROP
表然后重新创建它:
BOOL result = [db executeUpdate:@"DROP TABLE IF EXISTS `customers`;"];
BOOL resultTwo = [db executeUpdate:@"CREATE TABLE IF NOT EXISTS customers(name text primary key, age int)"]; //or course fields in your table will be different
Swift(为了完整起见):
let dropTable = "DROP TABLE customers"
let result = contactDB.executeUpdate(dropTable, withArgumentsInArray: nil)
if !result
print("Error: \(contactDB.lastErrorMessage())")
let createTable = "CREATE TABLE IF NOT EXISTS customers(name text primary key, age int)"
if !contactDB.executeStatements(createTable)
print("Error: \(contactDB.lastErrorMessage())")
参考:truncate SQLite
【讨论】:
以上是关于如何使用 FMDB 从表中删除所有数据的主要内容,如果未能解决你的问题,请参考以下文章