首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SQL将外键添加到现有列

问SQL将外键添加到现有列
EN

Stack Overflow用户
提问于 2012-05-01 03:34:07
回答 7查看 335.9K关注 0票数 116

如果我在SQL Server 2008中使用以下SQL命令来更新带有外键约束的表:

代码语言:javascript
复制
ALTER TABLE Employees
ADD FOREIGN KEY (UserID)
REFERENCES ActiveDirectories(id)

UserID是我在Employees表中的FK列。我正在尝试引用ActiveDirectories表中的UserID。我收到这个错误:

外键“UserID”在引用表“Employees”中引用了无效的列“UserID”。

EN

回答 7

Stack Overflow用户

回答已采纳

发布于 2012-05-01 03:37:34

错误指示您的Employees表中没有UserID列。尝试先添加该列,然后重新运行该语句。

代码语言:javascript
复制
ALTER TABLE Employees
ADD CONSTRAINT FK_ActiveDirectories_UserID FOREIGN KEY (UserID)
    REFERENCES ActiveDirectories(id);
票数 202
EN

Stack Overflow用户

发布于 2012-05-01 03:39:32

也许你把你的专栏倒过来了?

代码语言:javascript
复制
ALTER TABLE Employees
ADD FOREIGN KEY (UserID)           <-- this needs to be a column of the Employees table
REFERENCES ActiveDirectories(id)   <-- this needs to be a column of the ActiveDirectories table

会不会列在Employees表中称为ID,而在ActiveDirectories表中称为UserID?

那么你的命令应该是:

代码语言:javascript
复制
ALTER TABLE Employees
ADD FOREIGN KEY (ID)                   <-- column in table "Employees"
REFERENCES ActiveDirectories(UserID)   <-- column in table "ActiveDirectories" 
票数 22
EN

Stack Overflow用户

发布于 2015-06-23 21:11:19

MySQL / SQL Server / Oracle / MS访问:

代码语言:javascript
复制
ALTER TABLE Orders
ADD FOREIGN KEY (P_Id)
REFERENCES Persons(P_Id)

若要允许命名外键约束条件,并在多个列上定义外键约束条件,请使用以下SQL语法:

MySQL / SQL Server / Oracle / MS访问:

代码语言:javascript
复制
ALTER TABLE Orders
ADD CONSTRAINT fk_PerOrders
FOREIGN KEY (P_Id)
REFERENCES Persons(P_Id)
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10389477

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档