Использование операторов sqlite pragma для настройки базы данных? - PullRequest
0 голосов
/ 10 апреля 2011

У меня проблема с выполнением прагматического выражения foreign_key в моем проекте.На данный момент я записал это в программу.

SQLiteStatement pragma = db.compileStatement("PRAGMA foreign_key = ON;");

pragma.execute;

Эти операторы выполняются после создания БД и с этого момента создаются таблицы, и все работает отлично.

Проблема в том, что когда я отлаживаю БД с помощью sqlite3, я выполняю оператор (pragma foreign_key;) в sqlite3, и он всегда показывает, что foreign_keys выключен, если я не включаю его явно во время отладки.

Итак, мой вопрос: как мне выполнить операторы PRAGMA в моем приложении?

просто для справки: версия sqlite - 3.6.22, в которой внешние ключи по умолчанию отключены, но не пропущенывнешний ключ или пропущенный триггер определены.и я знаю, что мне нужно определить триггеры для обеспечения ограничений внешнего ключа.Хотя я удивляюсь, почему.

1 Ответ

3 голосов
/ 10 апреля 2011

Прагма foreign_keys устанавливает переменную сеанса;это не часть схемы базы данных.По умолчанию он отключен для каждого «соединения», и если вы хотите включить его, вам нужно включить его для каждого соединения.

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