


SQLite3 связь по ключу.
Имеется две таблицы. Одна таблица связана с другой по ключу 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 нужно как то включить эти связи?
поддержка внешних ключей должна быть включена при компиляции библиотеки.
и еще, клиентом должна быть выполнена инструкция sql: PRAGMA foreign_keys = ON;