Search code examples
iossqlsqliteobjective-c-blocks

Delete multiple tables from a single query by separating from semicolon


I am trying to delete multiple tables in a single operation from sqlite. I tried separating it by semicolon but it didn't work out as expected. Here is my current code :

NSString *query = @"DELETE from Friends;DELETE from Stream;DELETE from Version";

I need some guidance on what could the problem be here, or if I am missing something.


Solution

  • To make an atomic operation out of multiple statements, use a transaction:

    BEGIN;
    DELETE FROM Friends;
    DELETE FROM Stream;
    DELETE FROM Version;
    COMMIT;
    

    You have to execute these five commands one by one if you're using sqlite3_prepare_v2; with sqlite3_exec, you can execute them with one call (but sqlite3_exec would not support SQL parameters).