使用Navicat V5.5创建数据库,外键出现错误ERROR 1005: Can’t create table (errno: 121)

网上搜索结果告诉我有以下三种原因:

1、表名重复

2、以该名字命名的表之前创建过后来删除了,但是对应的.frm文件还留在磁盘上

3、主键名字在全数据库范围内不是唯一的

今天遇到的应该是第三种情况-----主键名字在全数据库范围内不是唯一的

在设置外键的时候,外键名之前在另外一张表里面已经使用过,这就造成了'121'这个错误。将外键名进行更改后,建表成功。

结合我自己的实际情况 ,推导自己的错误原因大概是约束名  与其他表约束名 重复了。

 

 

语法:创建表时 指定外键约束 :

constraint   约束名称  foreign  key(外键列名)   references  关联表 (关联表的主键);

 

学生成绩表(t_score):
错误多次的建表如下:
 create table t_score(
    -> sid char(5),
    -> cid char(2),
    -> score int comment'成绩',
    -> constraint fk_1 foreign key(sid) references t_student(sid),
    -> constraint fk_2 foreign key(cid) references t_course(cid)
    -> );
1005 - Can'

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值