什么可能导致FK错误?我正在将一个'Activity'记录插入到一个数据库中,该数据库上有一个'StaffId'字段(带有Staff表的FK),我找到了有问题的staffId(没有空格等)并且它确实存在。还有什么可能导致外键字段出错?
编辑:错误:
INSERT语句与FOREIGN KEY约束冲突 “FK_Activities_Staff”。冲突发生在数据库中 “DataWarehouseB”,表“dbo.Staff”,列“StaffId”。该声明 已被终止。
答案 0 :(得分:2)
如果数据库架构包含需要的外键错误 查看多个表定义以识别,然后查找 创建表时未检测到错误。相反,这样 错误阻止应用程序准备SQL语句 以使用方式修改子表或父表的内容 外键。内容更改时报告的错误是“DML错误” 更改架构时报告的错误是“DDL错误”。所以, 换句话说,错误配置的外键约束需要 看着孩子和父母都是DML错误。英语 外键DML错误的语言错误消息通常是“外来的” 密钥不匹配“但如果父表的话,也可以是”没有这样的表“ 不存在。如果出现以下情况,可能会报告外键DML错误:
- 父表不存在。
- 外键约束中指定的父键列不存在。
- 外键约束中指定的父键列不是父表的主键,不受a的约束 使用CREATE中指定的整理顺序的唯一约束 表。
- 子表引用父键的主键,而不指定主键列和主键数 父级中的列与子键列的数量不匹配。
某些数据库可能也支持使用non-unique index as a foreign key reference,