繁体   English   中英

“无法添加外键约束”

[英]“cannot add foreign key constraint”

首先,我创建了该表名称DEPARTMENT,然后创建了Dept_Locations,该表在Dnumber的表中具有外键引用。

create table DEPARTMENT(
    Dname               varchar(20)     NOT NULL,
    Dnumber             int             NOT NULL,
    Mgr_ssn             char(9)         NOT NULL,
    Mgr_start_date      date            NOT NULL,
    Primary key(Dnumber),
    Unique(Dname)
);

Dept_Locations表的代码:

create table Dept_Locations(
    Dnum char(4),
    Dlocation varchar(16),
    primary key(Dnum,Dlocation),
    foreign key(Dnum) references DEPARTMENT(Dnumber));

现在,当我执行此代码以创建Dept_Locations时,出现错误:

无法添加外键约束。

外键必须与其引用的列具有相同的数据类型。

DEPARTMENT中的Dnumber int ,并且Dnum列定义为char(4) -但必须将其定义为int

认为数据类型不同。

Dnum char(4)

Dnumber int

您的主键和具有外键约束的列的大小不同-尝试:

create table DEPARTMENT(
    Dname               varchar(20)     NOT NULL,
    Dnumber             char(4)          NOT NULL, # <-- Note the size change
    Mgr_ssn             char(9)         NOT NULL,
    Mgr_start_date      date            NOT NULL,
    Primary key(Dnumber),
    Unique(Dname)
);

(或更新另一个以匹配)

暂无
暂无

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

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