找不到匹配的key exchange算法_找不到与引用列列表匹配的主键或候选键。

执行语句:

create table
职工

( 职工号 smallint not null,

姓名 char(10),

年龄 smallint check(年龄<60 or 年龄=60),

职务 char(20),

工资 smallint,

部门号 char(20) not null ,

primary key(职工号)

);

create table 部门

(

部门号 char(20) not null primary key ,

名称 char(20),

经理名 char(10),

电话 int,

foreign key(部门号) references 职工(部门号)

);

报错:

消息 1776,级别 16,状态 0,第 56 行在被引用表 '职工' 中没有与外键 'FK__部门__部门号__4E88ABD4' 中的引用列列表匹配的主键或候选键。消息 1750,级别 16,状态 0,第 56 行无法创建约束。请参阅前面的错误消息。

问题分析:

部门表中部门号参照职工表中的部门号,被参照的部门号不是候选键或者说不是主键,候选键最主要的特性就是“唯一”,所以为职工表中的部门号加上“列值唯一”即unique就可以解决问题了

改正后:

c2398baffb1c46b98acaa5c2ade810ee.png