mysql 1215_mysql执行带外键的sql文件时出现mysql ERROR 1215 (HY000): Cannot add foreign key constraint的解决...

ERROR 1215 (HY000): Cannot add foreign key constraint

最近在建表时遇到了这个错误,然后找了下找到了解决办法,记录下:

本来是要建两张表:

出现下面的提示:

45046c1bec42bd3e599992d4b6daab05.png

然后开始上网查,有的说是用的引擎不同的原因,查看了下我的,两引擎一模一样,

又有的说一个是int ,因为加了auto_increment后,实际变成了int undesigned,既然变成了

int undesigned那我也设置成undesigned,再插入,错误依旧,

最后 我想到了上面的department表中的id,只是整形,可能不唯一,

然后加上了 primary key

再次试验,发现能正常创建表

5b60ef862dcf91d528328889a6d17ad9.png

这里的具体原理是什么还没搞清楚,上面的也只是猜测,特此记录

如果找到原因再更新!

更新:

https://stackoverflow.com/questions/22013511/mysql-error-1215-hy000-cannot-add-foreign-key-constraint

7f26656d8cf3acbfcc79cf43a4a30602.png

也就是说我上面 的猜测是正确的!

看看对unique的测试:

1d9f392c5dec20027ca894965f3246c6.png

转自:http://www.cnblogs.com/Andy963/p/7634537.html

以上要注意的就是最后一点原因外键必须是另一个表的主键或者唯一键(即要不把那个列设为主键要不就建立一个唯一索引)

powerdesigner建立主键不再介绍,建立唯一索引的步骤如下

2dc6134f4e551fe69418e4d5b7e22b11.png

bde12a4708b9f43453fda663fc1ff549.png

e2e808752c3f05abdebb874f4ec92e0e.png

选择某列为unique index即可。

至于外键的建立如下:

双击表与表之间的连接线

21066533994eb31d7d98fb4cd11a041c.png

075af49286b913849e368ae1c58db826.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/526718.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

mysql里面可以用正则吗_Mysql中使用正则表达式

最近在《MYSQL必知必会》这本书中读到在SQL中使用正则表达式,以前是学过数据库也学过正则表达式,但是不知道原来他们可以一起使用,这里做下记录。首先是Mysql使用正则表达式的语法:SELECT ... FROM ... WHERE ... REGEXP ...(这…

mysql数据库的备份和恢复的常用方法_MySQL数据库备份与恢复方法(转)

常有新手问我该怎么备份数据库,下面介绍3种备份数据库的方法:MySQL中的每一个数据库和数据表分别对应文件系统中的目录和其下的文件。在Linux下数据库文件的存放目录一般为/var/lib/mysql。在Windows下这个目录视MySQL的安装路径而定,DiaHost…

mysql sum函数返回类型_MySQL的sum函数返回的门类

MySQL的sum函数返回的类型 今天项目切换数据库时,出错 访问数据库的代码大概是这样: String sql "select sum(number) as sumNumberOfOneDay from tableName";ListMap rows getJdbcTemplate().queryForList(sql);for (Map row : rows) {Some…

mysql 联合索引 性能_mysql:联合索引及优化

命名规则:表名_字段名1、需要加索引的字段,要在where条件中2、数据量少的字段不需要加索引3、如果where条件中是OR关系,加索引不起作用4、符合最左原则尽量不要用or,如果可以用union代替,则一定要代替https://segmentf…

以下不属于mysql列类型的是什么意思_下列 ________ 类型不是 MySQL 中常用的的数据类型。_学小易找答案...

【简答题】工作区跳线的制作 请依据EIA568国际标准,制作一根直通线(即两端都是EIA568B线芯排布规律) 做好网线后,请拍照上传作业。【单选题】UNIQUE 惟一索引的作用是 ( ) :【简答题】根据实地观察结果,分别从树性、枝干、叶片、花、果实(如果有)等器官指出以下三组果树在植株形…

ruby mysql dbi_Ruby MySQL DBI实例

本次章节将介绍如何用Ruby来访问数据库。类似的Perl DBI模块为Ruby脚本的Ruby DBI模块提供了一种数据库(这里用MySQL讲解)独立的接口。DBI代表数据库无关的接口为RubyDBI提供的Ruby代码和底层数据库之间的抽象层,允许你真的很容易切换数据库实现。它定义了一套方法&…

api demo 京东商品详情_jd-demo

一个仿京东的网站:后端使用java,基本架构:springMVC spring mybatis;前端技术:HtmlCSSJQueryReactSass...后台接口说明:####1.统计用户、商品、订单数量/manage/statistic/base_count.dorequest无respons…

mysql linux 迁移mac_Mac和Linux之间传输数据,并导出mysql数据到本地

从 本地 复制到 远程复制文件:命令格式:scp local_file remote_usernameremote_ip:remote_folder或者scp local_file remote_usernameremote_ip:remote_file或者scp local_file remote_ip:remote_folder或者scp local_file remote_ip:remote_file第1,2个…

mysql与tomcat_mysql数据库与tomcat服务器的一些细节问题

java程序使用数据库的方法1.使用jndi数据源核心代码:initCtx new InitialContext()DataSource ds;ds (DataSource) initCtx.lookup("java:comp/env/jdbc/mysql1");conn ds.getConnection();----------配置服务器信息web项目web.xml中配置MySQL DB Conn…

python出现严重错误_安装出现严重错误!大神帮忙分析下原因

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼查看日志结果如下:(看不懂。。。)[2874:052C][2018-07-05T22:18:14]e000: Error 0x80070643: Failed to install MSI package.[2874:052C][2018-07-05T22:18:14]e000: Error 0x80070643: Failed to configure per-user …

信息安全学习路线图_Python学习图谱:学习到困惑的时候可以参考的图谱

很多同学都想学习Python,最近就连地产大佬潘石屹都要学Python。刚刚开始学习Python的同学来说,不知道从哪里下手,学习起来比较困惑,没有找到一个好的学习方法,没有高手带路,没有人督促你学习,或…

如何更新mysql数据库字段_如何使用MySQL一个表中的字段更新另一个表中字段

1,修改1列update student s, city cset s.city_name c.namewhere s.city_code c.code;2,修改多个列update a, bset a.titleb.title, a.nameb.namewhere a.idb.id•子查询update student s set city_name (select name from city where code s.city_c…

mysql到mysqli转变表_利用mysql和mysqli取得mysql的所有数据库和库中的所有表

/*** mysqli op mysql demo*//***公用函数*//***功能:列出一个数据库的所有表*param$dbname*param$con*/functionlist_tables($dbname,$con){mysql_select_db($dbname,$con)or die("选择数据库失败!");$res mysql_query("SHOW TABLES");$table…

zabbixdocker里的mysql_docker zabbix安装部署(数据库和web及zabbix服务都用docker版)

一、docker zabbix相关镜像下载分别docker pull (mysql:5.7 、zabbix/zabbix-agent 、zabbix/zabbix-server-mysql 、zabbix/zabbix-web-nginx-mysql)[rootald8 ~]# docker imagesREPOSITORY TAG IMAGE ID CREATED SIZEmysql 5.7 98455b9624a9 12 days ago 372MBzabbix/zabbix…

mysql gui 修改密码_MySQL修改root密码的各种方法整理

整理了以下四种在MySQL中修改root密码的方法,可能对大家有所帮助!方法1: 用SET PASSWORD命令mysql -u rootmysql> SET PASSWORD FOR rootlocalhost PASSWORD(newpass);方法2:用mysqladminmysqladmin -u root password "newpass"如果root已…

mysql 物理结构设计_数据库的物理结构设计指的是什么?

Log Goup ID,可能会配置多个redo组,每个组对应一个id,当前都是0,占用4字节Start LSN,这个redo log文件开始日志的lsn,占用8字节Log File Number,总是为0,占用4字节Created By&#x…

mysql 监控 开源_强大的开源企业级数据库监控利器Lepus

Lepus监控简单介绍开源企业级数据库监控系统简洁、直观、强大的开源数据库监控系统,MySQL/Oracle/MongoDB/Redis一站式性能监控,让数据库监控更简单简单介绍:Lepus(天兔)数据库企业监控系统是一套由专业DBA针对互联网企业开发的一款专业、强大…

python的fopen函数_linux c函数(fgets,fputs,fopen)

clearerr(清除文件流的错误旗标)相关函数 feof表头文件 #include定义函数 void clearerr(FILE * stream);函数说明 clearerr()清除参数stream指定的文件流所使用的错误旗标。返回值fclose(关闭文件)相关函数 close,fflush,fopen,setbuf表头文…

java整数转字符串_Java整型与字符串相互转换(转)

1如何将字串 String 转换成整数 int?A. 有两个方法:1). int i Integer.parseInt([String]); 或i Integer.parseInt([String],[int radix]);2). int i Integer.valueOf(my_str).intValue();注: 字串转成 Double, Float, Long 的方法大同小异.2 如何将整数 int 转换成字串 St…

景点门票销售系统系统java_某景点门票销售管理系统

【实例简介】可用于学校实训课大作业,有数据库有文档 可用于学校实训课大作业,有数据库有文档 可用于学校实训课大作业,有数据库有文档 可用于学校实训课大作业,有数据库有文档【实例截图】【核心代码】某景点门票销售管理系统└─…