【发布时间】:2013-09-24 13:23:48
【问题描述】:
我正在使用以下命令添加外键
ALTER TABLE Company
ADD FOREIGN KEY (enumber)
REFERENCES emp(enumber);
...但它给出了一个错误:
消息 1769,第 16 级,状态 1,第 2 行
外键“company_enumber_FK”在引用表“company”中引用了无效列“enumber”。
消息 1750,第 16 级,状态 0,第 2 行
无法创建约束。查看以前的错误。
现在,如果我在表 company 中创建列 enumber 并执行它,命令会运行但显示空值。
这里 enumber 是表 emp 的主键,company 是另一个表,我希望在其中添加外键 enumber
我该怎么办?
【问题讨论】:
-
“命令运行但显示为空” - 您是否希望系统以某种方式神奇地知道在添加列时填充到
enumber中的正确值是什么? -
据我所知外键值不应该为 null 。那为什么它显示为空?
-
但又一次 - 您希望系统如何知道它要填充的非 NULL 值是什么?你错了,外键引用为空也没关系。
-
当子表和父表的行数不同时,系统填充null。我正确吗?
-
我完全不确定你对外键的理解是什么——我不太明白你现在在问什么。
标签: sql sql-server-2005 key