mysql执行带外键的sql文件时出现mysql ERROR 1215 (HY000): Cannot add foreign key constraint的解决
ERROR 1215 (HY000): Cannot add foreign key constraint
最近在建表时遇到了这个错误,然后找了下找到了解决办法,记录下:
本来是要建两张表:
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
create table department(id int,name varchar(20));create table employee(id int primary key auto_increment,name varchar(20),sex enum('male','female') not null default 'male',age int,dep_id int,foreign key(dep_id) references department(id)); |
出现下面的提示:

然后开始上网查,有的说是用的引擎不同的原因,查看了下我的,两引擎一模一样,
又有的说一个是int ,因为加了auto_increment后,实际变成了int undesigned,既然变成了
int undesigned那我也设置成undesigned,再插入,错误依旧,
最后 我想到了上面的department表中的id,只是整形,可能不唯一,
然后加上了 primary key
|
1
2
3
4
|
create table department(id int primary key,name varchar(20)); |
再次试验,发现能正常创建表

这里的具体原理是什么还没搞清楚,上面的也只是猜测,特此记录
如果找到原因再更新!
更新:
https://stackoverflow.com/questions/22013511/mysql-error-1215-hy000-cannot-add-foreign-key-constraint

也就是说我上面 的猜测是正确的!
看看对unique的测试:

转自:http://www.cnblogs.com/Andy963/p/7634537.html
以上要注意的就是最后一点原因外键必须是另一个表的主键或者唯一键(即要不把那个列设为主键要不就建立一个唯一索引)
powerdesigner建立主键不再介绍,建立唯一索引的步骤如下



选择某列为unique index即可。
至于外键的建立如下:
双击表与表之间的连接线


mysql执行带外键的sql文件时出现mysql ERROR 1215 (HY000): Cannot add foreign key constraint的解决的更多相关文章
- MySQL添加外键时报错 ERROR 1215 (HY000): Cannot add foreign key constraint
1.数据类型 2.数据表的引擎 数据表 mysql> show tables; +------------------+ | Tables_in_market | +--------- ...
- 如何在c#代码中执行带GO语句的SQL文件
需要在C#代码中执行一个SQL文件的内容.遇到了两个问题: 1. 因为SQL文件中有"GO"语句,执行时报错"Incorrect syntax near 'GO'.& ...
- Navicat MYSQL 建立关联表 保存时遇到 cannot add foreign key constraint
首先建立user表,如下图 然后建立message表,userid用作外键,关联user表的id 点击上面的外键按钮,添加外键如下 结果保存时报错: cannot add foreign key co ...
- MySQL设置外键报错 #1452 - Cannot add or update a child row: a foreign key constraint fails 解决方法
MySQL数据库,当我尝试在A表中设置B表的主键为外键时,报出错误:#1452 - Cannot add or update a child row: a foreign key constraint ...
- Navicat For MySQL--外键建立与cannot add foreign key constraint分析
hrm_job.png 参考资料: https://blog.csdn.net/ytm15732625529/article/details/53729155 https://www.cnblogs. ...
- Mysql之1451 - Cannot delete or update a parent row: a foreign key constraint fails...解决办法记录
今天使用delete语句删除一张表中的一条信息时,提示了这么一个错误:1451 - Cannot delete or update a parent row: a foreign key constr ...
- mysql清空带外键的表
set FOREIGN_KEY_CHECKS =0;TRUNCATE memo;TRUNCATE customer;set FOREIGN_KEY_CHECKS =1;
- 命令行插入含有中文的sql文件,报错ERROR 1366 (HY000): Incorrect stringvalue:
--以下是插入语句: insert into sms_inbox values('123456','123456', 'cd', sysdate(), '今天天 气很好', 1, sysdate(), ...
- MySQL Error 1215: Cannot add foreign key constraint
MySQL Error 1215: Cannot add foreign key constraint DROP TABLE IF EXISTS `r_role_region`; CREATE TAB ...
随机推荐
- go post 上传文件的例子
go post 上传文件 package main import ( "bytes" "fmt" "io" "mime/multi ...
- 关于docker容器和镜像的区别
docker的整个生命周期有三部分组成:镜像(image)+容器(container)+仓库(repository): 如下图所示,容器是由镜像实例化而来,这和我们学习的面向对象的概念十分相似,我们可 ...
- 错误状态码URL重定向
server { listen 80; server_name www.espressos.com; location / { root /data0/www/bbs; index index.htm ...
- http.ResponseWriter的Flush
func handle(res http.ResponseWriter, req *http.Request) { fmt.Fprintf(res, "sending first line ...
- Android Http 下载
在安卓中,可以直接用java的java.net.URL包访问网络下载数据.不同的是,安卓程序需要权限,需要在AndroidManifest.xml文件中声明权限 <!-- 网络权限 --> ...
- git命令--git checkout 之 撤销提交到暂存区的更改
SYJ@WIN-95I6OG3AT1N /D/gitlab/ihr-kafka-produce (master) $ git status [由于工作区文件被修改了,所以显示为红色] On branc ...
- spark快速上手
spark快速上手 前言 基于Spark 2.1版本 仅仅是快速上手,没有深究细节 主要参考是官方文档 代码均为官方文档中代码,语言为Scala 进入spark-shell 终端输入spark-she ...
- 【转】Android的root原理
转自知乎:https://www.zhihu.com/question/21074979 @Kevin @张炬 作者:Kevin链接:https://www.zhihu.com/question/21 ...
- Deepin Linux修改Grub引导
grub rescue> 模式修复 登录成功后, sudo upgrade-grub sudo install-grub /dev/sda 系统启动失败,修改fstab, 在grub系统选择界面 ...
- C语言 · 生物芯片
标题:生物芯片 X博士正在研究一种生物芯片.博士在芯片中设计了 n 个微型光源,每个光源操作一次就会改变其状态,即:点亮转为关闭,或关闭转为点亮. 这些光源的编号从 1 到 n,开始的时候所有光源都是 ...