【问题标题】:INSERT statement conflicted with COLUMN FOREIGN KEYINSERT 语句与 COLUMN FOREIGN KEY 冲突
【发布时间】:2012-04-30 04:12:16
【问题描述】:

我的表中有一个 FK,如下所示:

显然,我应该能够将NULL 以及父表中存在的任何值插入此列。

但是当我尝试插入 NULL 时,我收到以下错误:

INSERT 语句与 FOREIGN KEY 约束冲突 “users_fk”。数据库“mydatabase”中发生冲突,表 “dbo.country”,列“country_id”。

【问题讨论】:

  • 您可以编写表格并发布它吗?
  • 我应该在这里粘贴我的表的 CREATE SCRIPT 吗?那会有帮助吗? @Chopin 你想看哪张桌子?用户还是国家?
  • 以及 INSERT 语句...
  • 如果您没有在INSERT 语句中指定列 - 那么可能在该列上定义了无效的默认值?类似于默认值 0 之类的东西。如果您有默认值 - 该值将被插入
  • @marc_s 是的,你是对的。它默认为零。请将此作为评论回复,以便我可以接受作为答案并关闭此线程。感谢 marc_s 和所有其他人帮助我解决了这个问题。

标签: sql sql-server sql-server-2008


【解决方案1】:

您是绝对正确的 - 您应该能够将NULL 插入此列。

500%确定你是吗?错误消息说明了其他内容 - 看起来好像您正在插入无效值。

难道你有

(a) 脚本中插入附加(无效)值的另一行?

或者

(b) 你是否碰巧在这个表上有一个触发器,它做了一些无效的事情?

更新:(根据您的评论)
如果您INSERT 语句中指定列 - 那么可能在该列上定义了无效的默认值?类似于0 的默认值之类的东西。

如果您确实有默认值 - 将插入该默认值(而不是 NULL,正如您所期望的那样)

【讨论】:

  • 谢谢。我不得不删除默认值来修复它。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-07-27
  • 2021-05-30
相关资源
最近更新 更多