SQLiteはTRUNCATEをサポートしない

FMDBを使って更に抽象度を上げたSQLiteのユーティリティを書いているのだが、以下のようなテーブルを削除するコードを書いても上手くいかない。

DBHelper.m
@synthesize db;
- (void)deleteTable:(NSString*)tableName;
}
    [db open];
    @try
    {
        if ([db tableExists:tableName])
        {
            NSString* sql = 
              [[NSString alloc] initWithFormat:@"TRUNCATE TABLE %@", tableName];

            BOOL result = [db executeUpdate:sql];
            if (!result)
            {
                [dbHelper logDBError:sql];
            }
        }
    }
    @finally 
    {
        [db close];
    }
}
- (void)logDBError:(NSString*)sql;
{
    LogError(@"** SQLite Error SQL : %@", sql);
    LogError(@"**         ErrorCode: %d", db.lastErrorCode);
    LogError(@"**         LastError: %@", db.lastError);
}

それもそのはず、SQLiteはTRUNCATEをサポートしないのだった。
SQLite Query Language: DELETE

なのでSQLを以下のように修正することで期待通り動作した。

NSString* sql = [[NSString alloc] initWithFormat:@"DELETE FROM %@", tableName];

知ってる人からみるとアホらしいミスだ。
Androidで提供されていたユーティリティにどれだけ助けられていたか、ということだな。