在列中添加FOREIGN KEY约束

时间:2017-09-29 02:34:06

标签: sql sql-server foreign-keys

如何在referrer_id(与profile id相同)列中添加FOREIGN KEY约束?由于列名包含括号,因此抛出错误

ALTER table Referrals ADD Constraint fk_referrer_ID 
       FOREIGN KEY(referrer_id(same as profile id)) REFERENCES Profiles(profile_id)

错误:'referrer_id(与个人资料ID相同)附近的语法不正确。

2 个答案:

答案 0 :(得分:2)

使用下面的查询,用括号([])分隔的列名:

ALTER table Referrals ADD Constraint fk_referrer_ID FOREIGN KEY([referrer_id(same as profile id)]) REFERENCES Profiles(profile_id) 

答案 1 :(得分:2)

我相信referrer_id是您的专栏名称

ALTER table Referrals ADD Constraint fk_referrer_ID 
        FOREIGN KEY(referrer_id) REFERENCES Profiles(profile_id) 

您不要在外键中指定与profile id 相同,REFERENCES Profiles(profile_id)将该消息传达给编译器。

或者如果你真的有一个丑陋的列名(referrer_id(same as profile id)),那么你需要使用方括号来转义列名中的特殊字符

ALTER table Referrals ADD Constraint fk_referrer_ID 
         FOREIGN KEY([referrer_id(same as profile id)]) REFERENCES Profiles(profile_id)