#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. разве я не могу использовать точку с запятой для разделения, как я это сделал?