0

我有三个表我想将所有三个表链接在一起。例如:table1:创建主表(sr_no int,int,name text);

table2:创建表child1(sr_no int,emplno int,last_name text,外键(sr_no)在更新级联上删除级联时引用master(sr_no));

table3:创建表child2(Em int,电话文本,外键(Em)在更新级联上删除级联时引用child1(emplno));

但是当将数据插入 table3 时,它的显示 ===> 错误:外键不匹配

请告诉我什么问题谢谢

4

2 回答 2

0

http://www.sqlite.org/foreignkeys.html#fk_indexes

如果出现以下情况,可能会报告外键 DML 错误:

  • 父表不存在,或

  • 外键约束中命名的父键列不存在,或者

  • 在外键约束中命名的父键列不是父表的主键,并且不受使用 CREATE TABLE 中指定的整理顺序的唯一约束,或者

  • 子表引用了父表的主键,没有指定主键列,并且父表的主键列数与子键列数不匹配。

emplno 是 child2 中的主键吗?

于 2013-03-29T12:45:46.740 回答
0

文档说:

父键列必须共同受 UNIQUE 约束或具有 UNIQUE 索引

child1向'S字段添加 UNIQUE 约束emplno,或在其上创建单独的索引。

于 2013-03-29T12:49:12.213 回答