繁体   English   中英

ALTER TABLE 语句与 FOREIGN KEY 约束冲突

[英]ALTER TABLE statement conflicted with the FOREIGN KEY constraint

创建外键时,我遇到了这个错误。 下面是我的代码

create table tblPerson(
ID int not null primary key,
Fullname varchar(50) not null,
Email varchar(50) not null,
GenderId int )

create table tblGender ( 
ID int not null primary key,
Gender varchar(50) not null
)


alter table tblPerson add constraint tblPerson_GenderId_FK
foreign key (GenderId) references tblGender(ID)

嗨,请使用以下代码来实现您的目标:

1-首先创建tblGender:

create table tblGender ( 
ID int not null primary key,
Gender varchar(50) not null
)

2-然后创建表 tblPerson 与 2 个表之间的关系,从一开始:

create table tblPerson(
ID int not null primary key,
Fullname varchar(50) not null,
Email varchar(50) not null,
*GenderId int references tblGender(ID) )*

工作正常。

您想标识任何“不对齐”行....

我做了以下。

如果任何行从 SELECT 查询返回,您将无法添加 FK 约束。

我还删除了“tbl”的匈牙利符号。 我会建议不要这样做。

create table dbo.Person(
ID int not null primary key,
Fullname varchar(50) not null,
Email varchar(50) not null,
GenderId int )

create table dbo.Gender ( 
ID int not null primary key,
Gender varchar(50) not null
)

/* any rows below? you FK creation will fail */
Select *, p.GenderId as 'HoustonWeHaveAProblemValue' from dbo.Person p Where Not Exists (Select 1 from dbo.Gender g where g.ID = p.GenderId)


alter table dbo.Person add constraint Person_GenderId_FK
foreign key (GenderId) references dbo.Gender(ID)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM