C# SQLITE中的外键失败
我试图在三个表之间创建一个关系,但由于某些未指定的原因,它似乎失败了。当我创建一对一关系时,它起了作用,多对一关系也起了作用,但一对多关系失败了。简而言之,以下是我的布局: 表1有两个字段,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"
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。