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的解决的更多相关文章

  1. MySQL添加外键时报错 ERROR 1215 (HY000): Cannot add foreign key constraint

    1.数据类型      2.数据表的引擎 数据表 mysql> show tables; +------------------+ | Tables_in_market | +--------- ...

  2. 如何在c#代码中执行带GO语句的SQL文件

      需要在C#代码中执行一个SQL文件的内容.遇到了两个问题: 1. 因为SQL文件中有"GO"语句,执行时报错"Incorrect syntax near 'GO'.& ...

  3. Navicat MYSQL 建立关联表 保存时遇到 cannot add foreign key constraint

    首先建立user表,如下图 然后建立message表,userid用作外键,关联user表的id 点击上面的外键按钮,添加外键如下 结果保存时报错: cannot add foreign key co ...

  4. 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 ...

  5. Navicat For MySQL--外键建立与cannot add foreign key constraint分析

    hrm_job.png 参考资料: https://blog.csdn.net/ytm15732625529/article/details/53729155 https://www.cnblogs. ...

  6. 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 ...

  7. mysql清空带外键的表

    set FOREIGN_KEY_CHECKS =0;TRUNCATE memo;TRUNCATE customer;set FOREIGN_KEY_CHECKS =1;

  8. 命令行插入含有中文的sql文件,报错ERROR 1366 (HY000): Incorrect stringvalue:

    --以下是插入语句: insert into sms_inbox values('123456','123456', 'cd', sysdate(), '今天天 气很好', 1, sysdate(), ...

  9. 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 ...

随机推荐

  1. Android 7.0 出现 ”FileUriExposedException“ 和 ”解析包出现错误“ 异常的解决办法

    问题1 :android.os.FileUriExposedException: file:///storage/emulated/0/Android/data/com.xxx.xxx.xxx.rel ...

  2. C#实现RSA加密与解密、签名与认证

    一.RSA简介 RSA公钥加密算法是1977年由Ron Rivest.Adi Shamirh和LenAdleman在(美国麻省理工学院)开发的.RSA取名来自开发他们三者的名字.RSA是目前最有影响力 ...

  3. HTML5学习笔记(十八):闭包

    高阶函数 JavaScript的函数其实都指向某个变量.既然变量可以指向函数,函数的参数能接收变量,那么一个函数就可以接收另一个函数作为参数,也可以返回一个函数,这种函数就称之为高阶函数. 函数作为参 ...

  4. Stochastic Gradient Descent收敛判断及收敛速度的控制

    要判断Stochastic Gradient Descent是否收敛,可以像Batch Gradient Descent一样打印出iteration的次数和Cost的函数关系图,然后判断曲线是否呈现下 ...

  5. Redis数据类型应用场景及具体方法总结

    StringsStrings 数据结构是简单的key-value类型,value其实不仅是String,也可以是数字.使用Strings类型,你可以完全实现目前 Memcached 的功能,并且效率更 ...

  6. FFmpeg(9)-解码器解码代码演示(FFmpeg调用MediaCodec实现硬解码、多线程解码、及音视频解码性能测试)

    一.AVFrame 用来存放解码后的数据. [相关函数] AVFrame *frame = av_frame_alloc();                       // 空间分配,分配一个空间 ...

  7. 关于CAE的那点儿破事儿

    CAE是计算机辅助工程的英文简写,所涵盖的范围甚是广泛.现在很多人提到CAE,总是联想到结构有限元计算,更有甚者认为有限元就是CAE.还有人把所有的工程数值计算都称作有限元.本文就这一话题,来谈谈关于 ...

  8. elastic search internal

    Realtime Search with Lucene http://2010.berlinbuzzwords.de/sites/2010.berlinbuzzwords.de/files/busch ...

  9. 【Android】Handler详解

    Handler的定义 主要接受子线程发送的数据, 并用此数据配合主线程更新UI. 解释: 当应用程序启动时,Android首先会开启一个主线程 (也就是UI线程) , 主线程为管理界面中的UI控件,进 ...

  10. Path-to-PegExp的使用

    下载: npm install path-to-regexp --save 引入: var pathToRegexp = require('path-to-regexp') 或者 import pat ...