如何使用FMDB从表中删除所有数据

时间:2013-04-04 11:11:43

标签: iphone ios fmdb

我想从数据库中的表中删除所有数据。我正在使用FMDB。我已经使用了这段代码,但它不会从我的表中删除数据。

-(BOOL) deleteAll
{

    FMDatabase *db = [FMDatabase databaseWithPath:[Utility getDatabasePath]];
    [db open];

    BOOL success =  [db executeUpdate:@"TRUNCATE TABLE customers"];

    [db close];

    return success;
    return YES;
}

2 个答案:

答案 0 :(得分:8)

尝试使用此代码。

BOOL success =  [db executeUpdate:@"DELETE FROM customers"];

只要我知道Sqlite不支持TRUNCATE查询。

答案 1 :(得分:1)

虽然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

斯威夫特(完整性):

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