我想从数据库中的表中删除所有数据。我正在使用FMDB。我已经使用了这段代码,但它不会从我的表中删除数据。
-(BOOL) deleteAll
{
FMDatabase *db = [FMDatabase databaseWithPath:[Utility getDatabasePath]];
[db open];
BOOL success = [db executeUpdate:@"TRUNCATE TABLE customers"];
[db close];
return success;
return YES;
}
答案 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())")
}