ON DELETE CASCADE не работает в SQLite - PullRequest
1 голос
/ 02 ноября 2011

В SQLite для iOS (3.7.7) я выполняю следующие запросы:

PRAGMA foreign_keys = ON;

create table venue(id integer primary key not null, name text not null);

create table event(id integer primary key not null, name text not null, 
venue_id integer references venue(id) on delete cascade);

Но когда я удаляю место, дочерние события не удаляются. Есть идеи?

Ответы [ 2 ]

3 голосов
/ 06 декабря 2013

Я следовал тому, что сказал Catcall, и это сработало для меня: установив foreign_keys, запустив

stmt.execute("PRAGMA foreign_keys = ON");

каждый раз, когда я устанавливаю соединение с базой данных.

0 голосов
/ 03 ноября 2011

Проблема заключается в использовании нескольких дескрипторов в разных потоках, хотя они синхронизированы.Поскольку sqlite, включенный в iOS, является достаточно новым, чтобы разрешить использование одного дескриптора в потоках, если они правильно синхронизированы, использование одного дескриптора вместо нескольких должно сделать это без проблем.Но мне было бы интересно узнать, как и если кто-то еще решит эту проблему.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...