通过从分号中分离,从单个查询中删除多个表

时间:2014-07-03 07:41:38

标签: ios sql sqlite objective-c-blocks

我试图从sqlite中删除一个操作中的多个表。我尝试用分号分隔它,但它没有按预期工作。这是我目前的代码:

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

我需要一些关于这里可能出现问题的指导,或者我是否遗漏了什么。

1 个答案:

答案 0 :(得分:1)

要从多个语句中进行原子操作,请使用事务:

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

如果您使用sqlite3_prepare_v2,则必须逐个执行这五个命令;使用sqlite3_exec,您可以通过一次调用执行它们(但sqlite3_exec不支持SQL参数)。