找不到匹配的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
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值