SQL执行INSERT语句触发FOREIGN KEY外键约束冲突问题求助
报错原因
这个报错是外键约束冲突导致的,你当前插入的Title表设置了外键关联规则:Title表的PublisherCode字段值,必须是Publisher表的PublisherCode字段中已经存在的值。你插入语句里写的PublisherCode = 200还没有在Publisher表中录入,所以触发了规则拦截。
解决方法
你可以二选一处理:
- 改用已存在的出版商编码
先执行查询语句查看所有可用的出版商编码:
从查询结果里选一个有效值替换你插入语句里的SELECT PublisherCode FROM dbo.Publisher;200,再重新执行插入即可。 - 先新增对应出版商记录
如果你确实需要使用200这个出版商编码,先往Publisher表插入对应记录,补全所有必填字段:
成功插入出版商记录后,再执行你原来的-- 以下语句需替换尖括号内容为实际的出版商信息 INSERT INTO dbo.Publisher (PublisherCode, <出版商名称等其他必填字段>) VALUES (200, <对应字段的实际值>);Title表插入语句即可。
额外提示
你插入语句里的CategoryCode = 1如果也关联了分类表的外键,建议也提前校验值是否存在,避免后续触发同类报错。
内容的提问来源于stack exchange,提问作者orion
相关产品推荐
相关产品推荐

