C 如何使用sqlite的外键链接三个表1->;2->;3个不同的列

C 如何使用sqlite的外键链接三个表1->;2->;3个不同的列,c,linux,sqlite,C,Linux,Sqlite,我有三张桌子,我想把这三张桌子连在一起。 例如: 表1:创建主表(sr_no int,int,name text) 表2:创建表child1(sr_no int、emplno int、姓氏文本、外键(sr_no)references master(sr_no)on delete cascade on update cascade) 表3:创建表child2(Em int、电话文本、外键(Em)引用child1(empno)(在更新级联的删除级联上) 但在将数据插入表3时,其显示==>错误:外键不

我有三张桌子,我想把这三张桌子连在一起。 例如: 表1:创建主表(sr_no int,int,name text)

表2:创建表child1(sr_no int、emplno int、姓氏文本、外键(sr_no)references master(sr_no)on delete cascade on update cascade)

表3:创建表child2(Em int、电话文本、外键(Em)引用child1(empno)(在更新级联的删除级联上)

但在将数据插入表3时,其显示==>错误:外键不匹配

请告诉我什么问题 谢谢

在以下情况下,可能会报告外键DML错误:

  • 父表不存在,或

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

  • 外键约束中命名的父键列不是父表的主键,并且不受使用创建表中指定的排序顺序的唯一约束,或者

  • 子表引用父表的主键,但未指定主键列,并且父表中的主键列数与子键列数不匹配

emplno是child2中的主键吗

报告说:

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


child1
emplno
字段添加唯一约束,或在其上创建单独的索引。

oh srry其a employ no是主键,但根本不是问题。。。。非常感谢。