Удаление нескольких таблиц из одного запроса путем разделения через точку с запятой

#ios #sql #sqlite #objective-c-blocks

#iOS #sql #sqlite #objective-c-blocks

Вопрос:

Я пытаюсь удалить несколько таблиц за одну операцию из sqlite. Я попытался отделить его точкой с запятой, но это сработало не так, как ожидалось. Вот мой текущий код :

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

Мне нужны некоторые указания относительно того, в чем может быть проблема, или я чего-то не хватает.

Комментарии:

1. есть ли у этих таблиц какая-то взаимосвязь?

2. нет, это не имеет никакого отношения

Ответ №1:

Чтобы выполнить атомарную операцию из нескольких операторов, используйте транзакцию:

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

Вам придется выполнять эти пять команд одну за другой, если вы используете sqlite3_prepare_v2; с sqlite3_exec вы можете выполнить их одним вызовом (но sqlite3_exec они не будут поддерживать параметры SQL).

Комментарии:

1. разве я не могу использовать точку с запятой для разделения, как я это сделал?