【发布时间】:2018-11-04 19:41:22
【问题描述】:
我正在尝试这样做,
CREATE TABLE [dbo].[tblPerson](
[ID] [int] NOT NULL,
[Personame] [varchar](50) NULL)
[Email] [varchar](50) NULL,
[GenderId] [int] NULL
CREATE TABLE [dbo].[tblGender]( [id] [int] NOT NULL, [Gender] nvarchar NOT NULL)
Alter table tblPerson Add Constraint tblPerson_GenderId_FK Foreign Key (GenderId) references tblGender(id)
我遇到错误,不知道为什么
消息 547,第 16 级,状态 0,第 2 行 ALTER TABLE 语句与 FOREIGN KEY 约束“tblPerson_GenderId_FK”冲突。冲突发生在数据库“Sqlkudavenkat”、表“dbo.tblGender”、列“id”中。
【问题讨论】:
-
错误很明显,
tblPerson中有一条记录,GenderID列中的值在tblGender中不存在。您需要先修复tblGenderfirst 中的该记录,然后才能创建外键 -
如果
tblGender是一个新表,那么您必须首先使用来自tblPerson的GenderID列中找到的所有值填充它 -
我将插入数据并添加外键,看看它是如何工作的
-
我建议您不要使用名称 ID 作为主键。我最大的烦恼之一是在表之间更改列名称。 PersonID 是 PersonID,无论它们在哪个表中。另外,tbl 前缀也不是什么好东西。
标签: sql-server