手机
当前位置:查字典教程网 >编程开发 >mysql数据库 >MySQL添加外键时报错:1215 Cannot add the foreign key constraint的解决方法
MySQL添加外键时报错:1215 Cannot add the foreign key constraint的解决方法
摘要:前言这篇文章主要涉及到在数据创建表时,遇到ERROR1215(HY000):Cannotaddforeignkeyconstraint问题方...

前言

这篇文章主要涉及到在数据创建表时,遇到ERROR 1215 (HY000): Cannot add foreign key constraint 问题方面的内容,对于在数据创建表时,遇到同样问题感兴趣的同学可以参考一下。

一、问题的提出

创建两个表:

product: 商品表

sealer: 供货商表

相应的SQL如下:

product表:

DROP TABLE IF EXISTS `product`; CREATE TABLE `product` ( `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT, `name` varchar(20) NOT NULL COMMENT 'product name', `price` float(10,3) NOT NULL, `description` varchar(20) DEFAULT NULL, `count` int(11) NOT NULL DEFAULT '0', `sid` int(11) NOT NULL, PRIMARY KEY (`id`), UNIQUE KEY `id_index` (`id`) USING HASH, UNIQUE KEY `sid_index` (`sid`) USING HASH ) ENGINE=InnoDB DEFAULT CHARSET=utf8;

sealer表:

DROP TABLE IF EXISTS `sealer`; CREATE TABLE `sealer` ( `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT, `name` varchar(30) NOT NULL, `city` varchar(255) DEFAULT NULL, `created_time` datetime DEFAULT NULL, `updated_time` datetime DEFAULT NULL, `level` int(11) NOT NULL DEFAULT '0', `description` varchar(40) DEFAULT NULL, PRIMARY KEY (`id`), UNIQUE KEY `id_index_1` (`id`) USING HASH ) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8;

接下来我们需要关联product.sid 至 sealer.id,进行父子表的主外键关联。

二、碰到错误

在创建外键之时,使用的SQL和碰到错误信息如下:

alter table `product' add CONSTRAINT `sid_ref` FOREIGN KEY (`sid`) REFERENCES `sealer` (`id`) ON DELETE NO ACTION ON UPDATE NO ACTION

碰到的错误信息如下:

MySQL添加外键时报错:1215 Cannot add the foreign key constraint的解决方法1

无法正确的插入外键约束。

3、问题分析

主外键更多的是某表的主键与子表的某个列进行关联,要求是具备相同的数据类型和属性,问题会不会出现在这里?

要求: 具备相同的数据类型和约束

发现: unsigned,数字的字符长度不一致。

4、解决的办法

修改product.sid中的数据类型,添加unsigned和字段的长度,将其设置为相同即可。

MySQL添加外键时报错:1215 Cannot add the foreign key constraint的解决方法2

总结

之所以出现1215的问题,是由于主外键之间的数据类型不一致造成的,以后类似问题,皆可按此处理。以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流。谢谢大家对查字典教程网的支持。

【MySQL添加外键时报错:1215 Cannot add the foreign key constraint的解决方法】相关文章:

MySQL:reading initial communication packet问题解决方法

MySQL order by性能优化方法实例

MySQL: mysql is not running but lock exists 的解决方法

mysql出现Error performing load command的解决方法

MYSQL出现" Client does not support authentication "的解决方法

MySQL单表多关键字模糊查询的实现方法

MYSQL安装时解决要输入current root password的解决方法

MySql 错误Incorrect string value for column

mysql处理添加外键时提示error 150 问题的解决方法

MySQL 视图 第1349号错误解决方法

精品推荐
分类导航