mysql添加外键时总是报错

[复制链接]
查看11 | 回复4 | 2013-5-24 11:47:35 | 显示全部楼层 |阅读模式
我观察到你的 emp表的username列,已经是 有UNI 的KEY 了也就是那个emp表的username是唯一的了。因此, 理论上foreign key(username) references emp(username),这个应该没有问题。但是那个foreign key (name) references emp (name)由于 emp表的name列, 是允许有重复行的。因此你无法创建外键。下面就是一个 失败的例子代码, 你可以参考一下-- 创建测试主表.无主键.CREATE TABLE test_main2 (id
...
回复

使用道具 举报

千问 | 2013-5-24 11:47:35 | 显示全部楼层
当发生此类的错误的时候,从三个角度入手:1、确保主表有主键。2、确保主从表数据引擎为InnoDB类型。3、确定从表外键字段类型与主表一致。...
回复

使用道具 举报

千问 | 2013-5-24 11:47:35 | 显示全部楼层
几种可能字段不一样,好比你这个表 int(8) 你连接的外键 是int(10) 这就会报错你的这个外键,不是那边的主键,非空的外键必须是唯一的键值,不能重复外键不能设置为默认值 如default 0...
回复

使用道具 举报

千问 | 2013-5-24 11:47:35 | 显示全部楼层
外键引用的列必须是键列,目测emp的name列没有定义为键列。将emp的name列定义为键列吧...
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行