Sqlite 外键插入应该失败

Sqlite foreign key insert should fail

为什么 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 fiddle: http://sqlfiddle.com/#!7/4fccc/1/0

像这样在连接字符串中启用外键约束:"Data Source=:memory:;foreign keys=true;"