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;"
为什么 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;"