jpa*_*lov 27 t-sql sql-server-2008
我试图将一个外键添加到表中,它给我以下错误:
引用表'tbl_Person'中没有主键或候选键与外键'P_ID'中的引用列列表匹配.
我有一个tbl_Person,定义为:
P_ID INT (Primary Key)
f_Name,
l_Name
Run Code Online (Sandbox Code Playgroud)
另一个表是一个注释表,定义如下:
C_ID INT,
Comments,
P_ID (should be the foreign key)
Run Code Online (Sandbox Code Playgroud)
尝试创建一对多关系表,因此当用户添加注释时,它会被引用给他,同时,他可以在不初始化新注释的情况下添加到注释中.希望这有点意义.
例如:Randy Bing输入"我喜欢SQL",他的ID是1,f_Name是Randy,l_Name是Bing,他的评论是"我喜欢Sql".他的评论应该存储一个唯一的ID,并导入他的P_ID.
稍后当Randy想要使用与P_ID匹配的相同C_ID添加注释而不创建新的C_ID.
这是代码:
ALTER TABLE tbl_Comments
ADD CONSTRAINT P_ID
FOREIGN KEY (P_ID)
REFERENCES tbl_Person(P_ID)
Run Code Online (Sandbox Code Playgroud)
我接近正确的轨道吗?
gbn*_*gbn 78
此错误通常表示"注释"和"人员"之间的数据类型不同,假设这是实际消息
SQL应该是这个
ALTER TABLE tbl_Comments WITH CHECK ADD
CONSTRAINT FK_Comments_Person FOREIGN KEY (P_ID) REFERENCES tbl_Person (P_ID)
Run Code Online (Sandbox Code Playgroud)
这与您添加的内容相符.所以: