Sql I';我试图修改我的一个表并添加一个外键,但我总是遇到同样的错误
我得到的错误是: Msg 1769,第16级,状态1,第30行Sql I';我试图修改我的一个表并添加一个外键,但我总是遇到同样的错误,sql,sql-server,Sql,Sql Server,我得到的错误是: Msg 1769,第16级,状态1,第30行 外键“fk_pid”在引用表“扣留者”中引用了无效列“P_ID” 我的表格结构: create table Detainee ( D_ID bigint primary key identity not null, Fname nvarchar(50), Lname nvarchar(50), Address
外键“fk_pid”在引用表“扣留者”中引用了无效列“P_ID” 我的表格结构:
create table Detainee
(
D_ID bigint primary key identity not null,
Fname nvarchar(50),
Lname nvarchar(50),
Address varchar(200),
DateOfBirth date,
DateOfArrest date,
SourceOfArrest nvarchar(max)
);
create table PrisonCell
(
P_ID bigint primary key not null,
Capacity int,
RemCap int,
C_Type varchar(20)
);
更改表的代码:
alter table Detainee
add constraint fk_pid foreign key(P_ID) references PrisonCell(P_ID)
您需要做的是:
- 将列添加到您的表
被拘留者
- 然后将FK约束添加到该列
ALTER TABLE Detainee
ADD P_ID BIGINT
CONSTRAINT fk_pid FOREIGN KEY REFERENCES PrisonCell(P_ID);
您的代码无法生成该错误。它没有外键定义。您应该更新问题并提供生成错误的代码。但基于错误,它只是一种类型--
P\u ID
与D\u ID
的比较。alter table INPECTED add constraint fk\u pid外键(P\u ID)引用PrisonCell(P\u ID)没有注意到没有发布此项。。如何更新我的问题我是stll new这里在你的问题下有一个编辑按钮。在执行此alter命令之前,你首先需要在被拘留者
表中添加列P\u ID
。