• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    MySQL添加外键时报错:1215 Cannot add the foreign key constraint的解决方法

    前言

    这篇文章主要涉及到在数据创建表时,遇到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 

    碰到的错误信息如下:

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

    3、问题分析

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

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

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

    4、解决的办法

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

       

    总结

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

    您可能感兴趣的文章:
    • MySQL外键约束(FOREIGN KEY)案例讲解
    • mysql外键(Foreign Key)介绍和创建外键的方法
    • MySQL 外键(FOREIGN KEY)用法案例详解
    上一篇:CentOS 7.2 Yum编译安装MySQL 5.6
    下一篇:mysql中数据库与数据表编码格式的查看、创建及修改
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

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