Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

SQLite3 связь по ключу.

Pantuchi Ученик (205), на голосовании 4 года назад
Имеется две таблицы. Одна таблица связана с другой по ключу 1 ко многим.
CREATE TABLE Cars (
id INTEGER PRIMARY KEY AUTOINCREMENT <=========
NOT NULL
UNIQUE,
car_name CHAR (100) DEFAULT не_указано,
gos_number CHAR (10) NOT NULL
UNIQUE,
volume DOUBLE NOT NULL
);

CREATE TABLE Drivers (
id INTEGER PRIMARY KEY AUTOINCREMENT
NOT NULL
UNIQUE,
driver_name CHAR (50) NOT NULL
UNIQUE,
phone CHAR (15),
FOREIGN KEY ( <======
car_id
)
REFERENCES Cars (id) NOT NULL
);
Т. е. У машины может быть несколько водителей, а у водителя только одна. Если вводить данные через IDE Sqlite 3 и в поле car_id самому вбить id машины не существующее в Cars то IDE выдаст FORIGEN KEYconstraint field все как и задумывалось. Если тоже самое сделать только через код C# то запись спокойно вносится и никакие SQLiteException не выбрасываются. Может я что то пропустил и в классе System.Data.SQLite нужно как то включить эти связи?
Голосование за лучший ответ
ant man Мастер (1201) 4 года назад
поддержка внешних ключей должна быть включена при компиляции библиотеки.
и еще, клиентом должна быть выполнена инструкция sql: PRAGMA foreign_keys = ON;
PantuchiУченик (205) 4 года назад
А как его включить в самом коде?
ant man Мастер (1201) "должна быть выполнена инструкция sql: PRAGMA foreign_keys = ON;" я же написал. перед тем как вставлять данные, выполни эту команду.
Похожие вопросы