0

我正在使用以下命令添加外键

ALTER TABLE Company
ADD FOREIGN KEY (enumber)
REFERENCES emp(enumber);

...但它给出了一个错误:

消息 1769,级别 16,状态 1,行 2
外键 'company_enumber_FK' 引用了引用表 'company' 中的无效列 'enumber'。
消息 1750,级别 16,状态 0,行 2
无法创建约束。请参阅以前的错误。

enumber现在,如果我在表中创建一列company并执行它,命令运行但显示空值。

enumber是表的主键,empcompany另一个表,我希望在其中enumber添加外键

我应该怎么办?

4

2 回答 2

3

通常的方法是将新列添加到Company表中 - 作为可空列或(如果所有行都应接收相同的值)具有默认值。

接下来,您应用外键约束。

如果在第一段中选择了可空列,则现在应该编写一个UPDATE确定Company.

最后,您可以Company再次更改以将可为空的列更改为NOT NULL.

于 2013-09-24T13:35:52.590 回答
0

这意味着Company没有名为 的字段enumber。换句话说,这个:

ADD FOREIGN KEY (enumber)

中引用了错误的字段Company

于 2013-09-24T13:27:34.567 回答