Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/329.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# SQLITE中的外键失败_C#_Sqlite - Fatal编程技术网

C# SQLITE中的外键失败

C# SQLITE中的外键失败,c#,sqlite,C#,Sqlite,我试图在三个表之间创建一个关系,但由于某些未指定的原因,它似乎失败了。当我创建一对一关系时,它起了作用,多对一关系也起了作用,但一对多关系失败了。简而言之,以下是我的布局: 表1有两个字段,name是一些文本,linkId是非唯一整数 表3有两个字段,stat为文本,statId为非唯一整数 表2是链接表,它有两个字段linkId和statId,这两个字段都是唯一的,都引用了表1和表3中的相应值 所以一些测试数据: 表1: name linkId "Test 1" 1 "Test 2"

我试图在三个表之间创建一个关系,但由于某些未指定的原因,它似乎失败了。当我创建一对一关系时,它起了作用,多对一关系也起了作用,但一对多关系失败了。简而言之,以下是我的布局:

表1有两个字段,
name
是一些文本,
linkId
是非唯一整数

表3有两个字段,
stat
为文本,
statId
为非唯一整数

表2是链接表,它有两个字段
linkId
statId
,这两个字段都是唯一的,都引用了表1和表3中的相应值

所以一些测试数据:

表1:

name   linkId
"Test 1"   1
"Test 2"   1
"Test 3"   1
"Test 4"   1
"Test 5"   1
表3:

stat linkId
"strength" 1
"intelligence" 1
"dexterity" 1
表2:

linkId statId
1         1

为什么会失败?表2中的
1
s不应该引用其他表中的
1
s吗?请注意,如果我将表1字段
linkId
设置为唯一,则它可以工作,但这不是我希望它的工作方式。

问题在于,在引用表列不唯一的情况下,SQLITE不支持外键。我稍微改变了一下我的表布局,现在可以使用了。

请澄清“外键失败”是什么意思?您是否得到异常、无效的查询结果等?当我尝试在表2中输入数据时,它只是说
外键不匹配
。如果有什么不同,我会使用SqLiteStudio。