数据库表A:

CREATE TABLE task_desc_tab

(

id INT(11) PRIMARY KEY NOT NULL COMMENT '自增主键' AUTO_INCREMENT,

taskname VARCHAR(200) NOT NULL COMMENT '任务名字',

sqlname VARCHAR(20) NOT NULL COMMENT 'sql文件名字',

params VARCHAR(5000) NOT NULL COMMENT '任务参数,格式为一个JSON字符串',

updatetime TIMESTAMP DEFAULT CURRENT_TIMESTAMP COMMENT '更新时间',

detail VARCHAR(3000) COMMENT '任务一些描述信息,只是备注信息作用'

)

ENGINE = InnoDB

DEFAULT CHARSET = utf8;

数据库B:

CREATE TABLE exec_plan_tab

(

id INT(11) PRIMARY KEY NOT NULL AUTO_INCREMENT,

taskname VARCHAR(200) NOT NULL,

startdate DATE NOT NULL,

enddate DATE NOT NULL,

updatetime TIMESTAMP DEFAULT CURRENT_TIMESTAMP,

CONSTRAINT exec_plan_tab_task_desc_tab_taskname_fk FOREIGN KEY (taskname) REFERENCES task_desc_tab (taskname)

)

ENGINE = InnoDB

DEFAULT CHARSET = utf8;

目标:创建表使得表B中的taskname为外键,参考表A中的taskname字段,创建表发现报错如下:

[2018-07-19 15:02:29] [HY000][150] Create table 'daxin/#sql-5d_30' with foreign key constraint failed. There is no index in the referenced table where the referenced columns appear as the first columns.

[2018-07-19 15:02:29] [HY000][1215] Cannot add foreign key constraint

[2018-07-19 15:02:29] [HY000][1215] Cannot add foreign key constraint

经过排查找到问题原因: 表A中的taskname必须使用UNIQUE字段修饰,这样保证记录唯一性,当表B参考时候不会出现歧义。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

本文标题: Mysql表创建外键报错解决方案

本文地址: http://www.cppcns.com/shujuku/mysql/345710.html

mysql数据库的创建外键_Mysql表创建外键报错解决方案相关推荐

  1. mysql版本更新之后忘记登录密码_MySQL 密码遗忘和登陆报错问题

    mysql登录密码忘记,其实解决办法很简单,只需要在mysql的主配置文件my.cnf里添加一行"跳过授权表"的参数选择即可! 在my.cnf中添加下面一行: [root@test ...

  2. mysql 数据库gbk转utf8 乱码_mysql表utf8编码,内容gbk编码的乱码转换

    今天遇到一个数据库库是utf8,表也是utf8,但内容是gbk的问题,出现了中文乱码 第一步  先把所有的表copy一份,比如表名叫 user,copy一份光表结构的,叫user2: 第二步  把表中 ...

  3. vsftpd 创建虚拟用户,添加黑名单 常见550 500报错解决方案

    1 安装vsftpd yum install -y vsftpd ftp 2 配置vsftpd 创建宿主用户 useradd ftpuser 备份vsftpd.conf文件 mv /etc/vsftp ...

  4. mysql创建外键的表_Mysql表创建外键报错解决方案

    Mysql表创建外键报错解决方案,字段,名字,数据库,更新时间,歧义 Mysql表创建外键报错解决方案 易采站长站,站长之家为您整理了Mysql表创建外键报错解决方案的相关内容. 数据库表A: CRE ...

  5. Mysql数据库基本操作(六)多表查询-内连接查询,外连接查询

    数据准备 use mydb3 ; --创建部门表 create table if not exists dept3 ( deptno varchar (20) primary key , --部门号 ...

  6. mysql设置外键_mysql怎么增加外键

    mysql增加外键的方法:1.在CREATE TABLE语句中,通过FOREIGN KEY关键字来添加外键:2.在ALTER TABLE语句中,通过ADD和FOREIGN KEY关键字来添加外键. M ...

  7. MySQL数据库 第5章:单表操作

    MySQL数据库 第5章:单表操作 5.1 数据操作 5.1.1 复制表结构和数据 5.1.2 解决主键冲突 5.1.3 清空数据 5.1.4 去除重复记录 5.2 排序与限量 5.2.1 排序 5. ...

  8. 人员考勤,MySQL数据库一个表自动生成3表筛选人员迟到早退缺勤

    人员考勤,MySQL数据库一个表自动生成3表筛选人员迟到早退缺勤 </h1><div class="clear"></div><div c ...

  9. Mysql数据库基本操作(七)多表查询-子查询,表自身关联查询

    多表查询还有前面的两块内容--内连接查询,外连接查询,希望看到这篇博客的朋友先去看看我的"Mysql数据库"专栏中Mysql数据库基本操作(六)多表查询-内连接,外连接这一章博客, ...

最新文章

  1. 定制开发软件所有权_职业所有权软件开发人员指南
  2. Microsoft COCO 数据集
  3. 思科路由器MTU及ip tcp adjust-mss测试
  4. SpringMVC列表不展示数据
  5. Hacker's Browser
  6. 值得一读的《框架设计(第2版):CLR Via C#》
  7. 牛客ACM赛 B [小a的旅行计划 ]
  8. 存储过程系列之存储过程具体操作过程及sql数据库调用
  9. 转-测试用例-基本控件
  10. Android 中 Activity 的生命周期
  11. 基于java SSM图书管理系统简单版设计和实现
  12. Qt:Qt使用鼠标模拟函数mouse_event和按键模拟函数keybd_even实现网页刷新功能
  13. php复制重叠字符串,PHP如何在复制字符串中的每个字符后“重复”字符串(恢复字符串)...
  14. 2017-2018-1 20155229 《信息安全系统设计基础》第八周学习总结
  15. 微信小程序篇(笔记1:wxParse富文本解析的使用)
  16. 家用linux 版本哪个好,Ubuntu到底哪个版本最好用?
  17. guet-acm-开挂的chair
  18. python打印的时候print(f“*******“) 的括号里的 f‘ ‘ 是什么意思 ?
  19. nginx配置选项try_files详解
  20. JCL,JES运作流程

热门文章

  1. Netty工作笔记0031---NIO零拷贝应用案例
  2. java零碎要点013---JAVA执行js_java执行JavaScript_java执行js引擎不能识别document浏览器内置对象解决办法
  3. fckeditor异常总结---The server didn‘t reply with a proper XML data. Please check your configuration.
  4. 杭电1978 How many ways
  5. java容器分数0-9_2018.4.27 java容器
  6. java access 2013_jdk1.8环境下的java如何直连接microsoft access2013(都是64位系统也是)...
  7. 从电子电路到嵌入式系统(开篇)
  8. linux驱动编写(设备树)
  9. 深度学习实践与部署(开篇)
  10. 嵌入式操作系统内核原理和开发(消息队列)