2016-05-22 9 views
0

Почему Sqlite позволяет мне вставлять внешний ключ в таблицу2, который не соответствует первичным ключам в таблице1? Я использую .NET и System.Data.SQLite.dllSqlite внешняя вставка ключа должна завершиться неудачно

Вот мои настройки:

create table [table1] (
    [Id] integer primary key NOT NULL 
, [col1] nvarchar(100) NULL 
); 

create table [table2] (
    [Id] integer primary key NOT NULL 
, [col2] integer NOT NULL 
, FOREIGN KEY(col2) REFERENCES table1(Id) 
); 

INSERT INTO [table1] ([col1]) VALUES ('val1'); 
INSERT INTO [table2] ([col2]) VALUES ('2'); 

SQL скрипку: http://sqlfiddle.com/#!7/4fccc/1/0

+0

Похоже на дублирование, хотя я решил его с включением ограничений внешнего ключа в строке соединения следующим образом: «Источник данных =: память:; внешние ключи = истина»; – rlee

ответ

0

Включить ограничения внешнего ключа в строке подключения, как так: «Источник данных =: память:; foreign keys = true;»