sql - 列 'tblGender.ID' 与外键 'tblPerson.GenderID' 中引用列 'tblPerson_GenderID_FK' 的数据类型不同

标签 sql database debugging key relationship

帮助 我不知道下一步该怎么做 我尝试了不同的方法但仍然显示相同的错误。如您所见,我使用的是相同的数据类型(GenderID 和 Gender = varchar (15) ),但它显示了您可以在下面找到的错误。

我正在使用语法

Alter table ForeignKeyTable add constraint ForeignKeyTable_ForeignKeyColumn_FK
FOREIGN KEY (ForeignKeyColumn) references PrimaryKeyTable (PrimaryKeyColumn)


create table tblPerson (
ID int primary key,
Name varchar (15),
Email varchar (15),
GenderID varchar (15)
)

create table tblGender (
ID int primary key,
Gender varchar (15)
)

select *from tblGender
select *from tblPerson

Alter table tblPerson add constraint tblPerson_GenderID_FK 
FOREIGN KEY (GenderID) references tblGender (ID)

这是执行后的错误

Msg 1778, Level 16, State 0, Line 18 Column 'tblGender.ID' is not the same data type as referencing column 'tblPerson.GenderID' in foreign key 'tblPerson_GenderID_FK'. Msg 1750, Level 16, State 0, Line 18 Could not create constraint or index. See previous errors.

最佳答案

使用以下内容更新您的表创建代码:

create table tblPerson (
ID int primary key,
Name varchar (15),
Email varchar (15),
GenderID int
)

注意:唯一的变化是将 GenderID 从 varchar 转换为 int。

关于sql - 列 'tblGender.ID' 与外键 'tblPerson.GenderID' 中引用列 'tblPerson_GenderID_FK' 的数据类型不同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28701491/

相关文章:

php - mysql左连接,右表计数包括零

database - Docker Swarm 如何处理数据库(PostgreSQL)复制?

即使查询在 mysql admin 中有效,JAVA MYSQL 准备好的语句也会给出空结果集

debugging - 当 D 中抛出异常时,如何使调试器中断?

C MPI - 没有明显原因的崩溃 - 程序接收到信号 SIGSEGV

debugging - ollydbg 操作码跟踪

PHP - 保留随机查询结果 24 小时

sql - 如何在 SQL Select 语句上检查 List 中的特定字符串?

sql - 理解类表继承

php - 我想从 2 个不同的表进行连接查询,我想从两个表中输出