我在为mysql数据库中的现有表创建外键时遇到一些问题。

我有experiment表:

+-------------+------------------+------+-----+---------+-------+

| Field | Type | Null | Key | Default | Extra |

+-------------+------------------+------+-----+---------+-------+

| EID | varchar(45) | NO | PRI | NULL | |

| Comment | text | YES | | NULL | |

| Initials | varchar(255) | NO | | NULL | |

| ExpDate | date | NO | | NULL | |

| InsertDate | date | NO | | NULL | |

| inserted_by | int(11) unsigned | YES | MUL | NULL | |

+-------------+------------------+------+-----+---------+-------+

而且我不想使用以下方法创建一个新的表experiment引用此表:

CREATE TABLE sample_df (

df_id mediumint(5) unsigned AUTO_INCREMENT primary key,

sample_type mediumint(5) unsigned NOT NULL,

df_10 BOOLEAN NOT NULL,

df_100 BOOLEAN NOT NULL,

df_1000 BOOLEAN NOT NULL,

df_above_1000 BOOLEAN NOT NULL,

target INT(11) unsigned NOT NULL,

assay MEDIUMINT(5) unsigned zerofill NOT NULL,

insert_date TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,

inserted_by INT(11) unsigned NOT NULL,

initials varchar(255),

experiment VARCHAR(45),

CONSTRAINT FOREIGN KEY (inserted_by) REFERENCES user (iduser),

CONSTRAINT FOREIGN KEY (target) REFERENCES protein (PID),

CONSTRAINT FOREIGN KEY (sample_type) REFERENCES sample_type (ID),

CONSTRAINT FOREIGN KEY (assay) REFERENCES assays (AID),

CONSTRAINT FOREIGN KEY (experiment) REFERENCES exp (EID)

);

但是我得到了错误:

ERROR 1215 (HY000): Cannot add foreign key constraint

为了获得更多信息,我做了:

SHOW ENGINE INNODB STATUS\G

从中我得到:

FOREIGN KEY (experiment) REFERENCES exp (EID)

):

Cannot find an index in the referenced table where the

referenced columns appear as the first columns, or column types

in the table and the referenced table do not match for constraint.

对我来说,列类型似乎是匹配的,因为它们都是varchar(45)。(我还尝试将experiment列设置为非null,但这并不能解决问题)所以我想问题可能出在Cannot find an index in the referenced table where the referenced columns appear as the first columns。但是我 我不太清楚这意味着什么,或者如何检查/修复它。 有没有人有什么建议? first columns是什么意思?

mysql 创建外键索引吗_索引-MySQL无法创建外键约束相关推荐

  1. mysql第五章项目二_高性能MySQL笔记 第5章 创建高性能的索引

    索引(index),在MySQL中也被叫做键(key),是存储引擎用于快速找到记录的一种数据结构.索引优化是对查询性能优化最有效的手段. 5.1 索引基础 索引的类型 索引是在存储引擎层而不是服务器层 ...

  2. mysql的覆盖索引原理_「Mysql索引原理(七)」覆盖索引

    通常大家都会根据查询的WHERE条件来创建合适的索引,不过这只是索引优化的一个方面.设计优秀的索引应该考虑到整个查询,而不单单是WHERE条件部分.索引确实是一种查找数据的高效方式,但是MySQL也可 ...

  3. 如何给mysql表添加百万条数据_给mysql一百万条数据的表添加索引

    直接alter table add index 添加索引,执行一个小时没反应,并且会导致锁表:故放弃该办法,最终解决办法如下: 一.打开mysql 命令行客户端 这里我们那可以看到导出的数据文件所存放 ...

  4. mysql为什么用b加树_为什么MySQL要用B+树?聊聊B+树与硬盘的前世今生【宇哥带你玩转MySQL 索引篇(二)】...

    为什么MySQL要用B+树?聊聊B+树与硬盘的前世今生 在上一节,我们聊到数据库为了让我们的查询加速,通过索引方式对数据进行冗余并排序,这样我们在使用时就可以在排好序的数据里进行快速的二分查找,使得查 ...

  5. mysql设置索引长度_修改Mysql索引长度限制

    mysql 索引过长1071-max key length is 767 byte 问题 create table: Specified key was too long; max key lengt ...

  6. Mysql 唯一索引长度_关于mysql索引长度的相关内容总结

    MySQL优化之-索引具体代码分析:索引是在存储引擎中实现的,因此每种存储引擎的索引都不一定完全相同,并且每种存储引擎也不一定支持所有索引类型.根据存储引擎定义每个表的最大索引数和最大索引长度.所有存 ...

  7. mysql版本的索引类型_【mysql】索引 回表 覆盖索引 索引下推

    索引类型 索引类型分为主键索引和非主键索引.(一定要牢记,是怎么存储数据的) 主键索引的叶子节点存的是整行数据.在 InnoDB 里,主键索引也被称为聚簇索引(clustered index). 非主 ...

  8. mysql索引失效_导致MySQL索引失效的几种常见写法

    最近一直忙着处理原来老项目遗留的一些SQL优化问题,由于当初表的设计以及字段设计的问题,随着业务的增长,出现了大量的慢SQL,导致MySQL的CPU资源飙升,基于此,给大家简单分享下这些比较使用的易于 ...

  9. like左匹配索引失效_导致MySQL索引失效的一些常见写法总结

    前言 最近一直忙着处理原来老项目遗留的一些SQL优化问题,由于当初表的设计以及字段设计的问题,随着业务的增长,出现了大量的慢SQL,导致MySQL的CPU资源飙升,基于此,给大家简单分享下这些比较使用 ...

  10. mysql group 索引失效_介绍mysql索引失效的情况

    mysql视频教程栏目索引失效的情况. 索引对于MySQL而言,是非常重要的篇章.索引知识点也巨多,要想掌握透彻,需要逐个知识点一一击破,今天来先来聊聊哪些情况下会导致索引失效. 图片总结版 相关免费 ...

最新文章

  1. 【拯救赵明】DDoS那些事
  2. golang中的collection
  3. 对commonMark.js的理解学习
  4. PHP学习总结(正则表达式、日期与时间)
  5. 面试奇葩——交换两变量值的一些邪门歪道
  6. R语言笔记:快速入门
  7. 安富莱v6开发板网口通讯_安富莱嵌入式周报第170期:2020.07.202020.07.26
  8. windows功能_你的Windows杀毒软件有这个功能吗?
  9. unity3d-小案例之角色简单漫游
  10. jupyter显示dataframe完整的行与列
  11. 用字典存储学生成绩查询_C语言 | 用结构体变量存储学生信息
  12. 外键列到底要建在哪里?
  13. 地平线获近亿美元A+轮融资,AI时代的英特尔被英特尔领投
  14. python语言特点粘性扩展_【语言处理与Python】9.2处理特征结构\9.3扩展基于特征的文法...
  15. IAR for STM8的基本使用教程
  16. vs2015-devexpress 安装
  17. python数据分析入门到实战 知了课堂 百度云_零基础入门Python数据分析,只需要看懂这一张图,附下载链接!...
  18. AssertionError: Incompatible version of pycocotools is installed.
  19. matlab 绘制对数曲线图,大神经验!教你用matlab画对数坐标!
  20. csapp--键盘驱动程序的分析与修改

热门文章

  1. 表的插入、更新、删除、合并操作_21_合并表中数据
  2. python列表字典如何提取_怎么提取字典里面的列表里面的字典的value
  3. java mvc 批量插入_请教mysql spring mvc +mybatis中批量插入的问题?
  4. Kong 1.0正式发布,提供服务网格支持和插件开发工具包
  5. Butterknife 的简单使用 和 配合 Butterknife的插件 Zelezny
  6. Android接入支付宝支付实现
  7. CAS5.2x单点登录(一)——搭建cas服务器
  8. 设置电脑背景颜色为保护眼睛的颜色
  9. 干货 | OneAPM研发总监高海强:百万并发云压测平台的关键技术
  10. 【python】sqlite使用