Внешний ключ не осуществляется

Почему следующее ограничение внешнего ключа (хотя выполняется прекрасный), не осуществленный SQLite? Как я могу пойти об осуществлении отношений?

CREATE TABLE User (
    UserID TEXT Unique NOT NULL PRIMARY KEY,
    FirstName TEXT NOT NULL,
    LastName TEXT NOT NULL,
    Username TEXT NOT NULL,
    Password TEXT NOT NULL,
    Email TEXT NOT NULL,
    SignupDate TEXT NOT NULL
)

CREATE TABLE Category (
    CategoryID TEXT Unique NOT NULL PRIMARY KEY,
    UserID TEXT,
    FOREIGN KEY(UserID) REFERENCES User(UserID)
)
13
задан Joulukuusi 15 December 2012 в 19:52
поделиться

1 ответ

Как соответствующие документы говорят (в разделе 2. Включение поддержки внешнего ключа ):

Предполагая, что библиотека скомпилирована с включены ограничения внешнего ключа, это все еще должен быть включен приложение во время выполнения, используя Команда PRAGMA foreign_keys. Для пример:

sqlite> PRAGMA foreign_keys = ON;

Ограничения внешнего ключа отключены по умолчанию (для обратного совместимость), поэтому необходимо включить отдельно для каждой базы подключение отдельно.

Использовали ли вы эту PRAGMA в соответствующей связи? (Предполагая, как говорится в документации, что sqlite скомпилирован соответствующим образом, а также, конечно, достаточно свежей версией, чтобы предлагать ограничение внешнего ключа).

18
ответ дан 1 December 2019 в 22:22
поделиться
Другие вопросы по тегам:

Похожие вопросы: