Почему следующее ограничение внешнего ключа (хотя выполняется отлично) не выполняется 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)
)
Большое спасибо за быстрый ответ. Я никогда не замечал этого в документации (в следующий раз будет выглядеть сложнее). Просто попробовав запустить эту команду, я получаю следующую ошибку: «Не удалось выполнить SQLite prepare(). ОШИБКА: авторизация отказана. ДЕТАЛИ: не авторизовано. EXPRESSION: PRAGMA foreign_keys = ON; Я предполагаю, что версия, которую они используют, не поддерживает или отключила функциональность. Могу ли я создать тот же конечный результат с помощью триггеров? Если да, то может ли кто-нибудь указать некоторый пример триггерного синтаксиса для SQLITE? –
@Maxim, я считаю, что SQL-ключи с внешним ключом требуют точно такой же базовой функции, как и обычные старые внешние ключи (часто удаляются во встроенных строках sqlite, которые хотят быть маленькими и быстрыми, чем они хотят предлагать «полную реляционную мощность ACID» на значительная производительность и затраты на работу). –