Sqlite外键插入应该失败

时间:2016-05-22 15:28:30

标签: sqlite system.data.sqlite

为什么Sqlite允许我在table2中插入一个与table1中的任何主键不匹配的外键? 我使用的是.NET和System.Data.SQLite.dll

这是我的设置:

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

1 个答案:

答案 0 :(得分:1)

在连接字符串中启用外键约束,如下所示:“Data Source =:memory :; foreign keys = true;”