I want to delete all data from table in my database. I am using FMDB.And i have used this code but it will not delete data from my table.
-(BOOL) deleteAll
{
FMDatabase *db = [FMDatabase databaseWithPath:[Utility getDatabasePath]];
[db open];
BOOL success = [db executeUpdate:@"TRUNCATE TABLE customers"];
[db close];
return success;
return YES;
}
Try to use this code.
BOOL success = [db executeUpdate:@"DELETE FROM customers"];
As long as i know Sqlite does not support TRUNCATE
query.
Although DELETE
command will work it is slow because it selects each row and than proceeds to delete it.
If you are deleting the whole table it is better to DROP
the table and than recreate it:
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 (for completeness sakes):
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())")
}
reference: truncate SQLite