gpt4 book ai didi

tsql - 添加外键,SQL SERVER 2008

转载 作者:行者123 更新时间:2023-12-03 08:19:16 24 4
gpt4 key购买 nike

我试图将外键添加到表中,它给我以下错误:

There are no primary or candidate keys in the referenced table 'tbl_Person' that match the referencing column list in the foreign key 'P_ID'.



我有一个tbl_Person,它定义为:
P_ID INT (Primary Key)
f_Name,
l_Name

另一个表是注释表,其定义为:
C_ID INT,
Comments,
P_ID (should be the foreign key)

尝试制作一对多关系表,因此,当用户添加评论时,该评论也被引用回他,他也可以添加到评论中而无需初始化新评论。希望这有点道理。

例如:Randy Bing输入“我爱SQL”,他的ID是1,f_Name是Randy,l_Name是Bing,他的注释是“I love Sql”。他的注释应存储唯一的ID,并导入他的P_ID。

稍后,当Randy想要添加具有相同C_ID的注释时,其中P_ID与他匹配而不创建新的C_ID。

这是代码:
ALTER TABLE tbl_Comments 
ADD CONSTRAINT P_ID
FOREIGN KEY (P_ID)
REFERENCES tbl_Person(P_ID)

我接近正确的方向了吗?

最佳答案

此错误通常表示“注释”和“人”之间的数据类型不同,假设这是实际消息

SQL应该是这样

ALTER TABLE tbl_Comments WITH CHECK ADD
CONSTRAINT FK_Comments_Person FOREIGN KEY (P_ID) REFERENCES tbl_Person (P_ID)

这与您添加的内容匹配。所以:
  • 检查数据类型均为int
  • 确保P_ID是tbl_Person
  • 上的主键
  • (编辑,2011年12月)varchar列的排序规则和长度也必须相同
  • 关于tsql - 添加外键,SQL SERVER 2008,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5291076/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com