1.描述问题:

在这里我新建了两张表(customers_info和orders)

表一:customers_info

CREATE TABLE customers_info
(
c_num INT(11) PRIMARY KEY NOT NULL UNIQUE AUTO_INCREMENT,
c_name VARCHAR(50),
c_contact VARCHAR(50),
c_city VARCHAR(50),
c_birth DATETIME NOT NULL
);

  

此时我们在新建表二orders时候,题目要求c_id的数据类型为VARCHAR(50),却要求我给他设置一个外键约束,关联到customers_info表中的c_num。

CREATE TABLE orders
(
o_num INT(11) PRIMARY KEY NOT NULL UNIQUE AUTO_INCREMENT,
o_date DATE,
c_id VARCHAR(50),
CONSTRAINT fk_c_num FOREIGN KEY(c_id) REFERENCES customers_info(c_num)
);

  执行这个时候,会出现报错:ERROR 1005 (HY000): Can't create table 'market.orders' (errno: 150)

出现问题的大致情况:

1、外键的引用类型不一样,如主键是int外键是char

2、找不到主表中引用的列

3、主键和外键的字符编码不一致,也可能存储引擎不一样

这里我遇到的是第一种和第三种情况,如图所示:

解决方式:

1.修改两张表的存储引擎相同

2.修改两者的数据类型一致

MariaDB [market]> show create table customers_info\G
*************************** 1. row ***************************
Table: customers_info
Create Table: CREATE TABLE `customers_info` (
`c_num` int(11) NOT NULL AUTO_INCREMENT,
`c_name` varchar(70) DEFAULT NULL,
`c_birth` datetime NOT NULL,
`c_phone` varchar(50) DEFAULT NULL,
`c_gender` char(1) DEFAULT NULL,
PRIMARY KEY (`c_num`),
UNIQUE KEY `c_num` (`c_num`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1
1 row in set (0.00 sec) MariaDB [market]> show create table orders\G
*************************** 1. row ***************************
Table: orders
Create Table: CREATE TABLE `orders` (
`o_num` int(11) NOT NULL AUTO_INCREMENT,
`o_date` date DEFAULT NULL,
`c_id` int(50) DEFAULT NULL,
PRIMARY KEY (`o_num`),
UNIQUE KEY `o_num` (`o_num`),
KEY `fk_c_num` (`c_id`),
CONSTRAINT `fk_c_num` FOREIGN KEY (`c_id`) REFERENCES `customers_info` (`c_num`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1
1 row in set (0.00 sec)

  

最新文章

  1. IOS下载查看PDF文件(有下载进度)
  2. Coding编译连接过程中遇到的问题及解决方法(iOS)
  3. iScroll.js几个问题及其解决办法
  4. MemCached用法
  5. 使用eclipse+tomcat搭建本地环境
  6. eclipse调试jdk源码
  7. selenium + python 添加等待时间
  8. 如何写一个简单的Web Server(一)
  9. 采用RPC方式和document方式 开发Axis2的WebService客户端
  10. 建房子之前先挖地基 - Java BlockingQueue理解
  11. sql 各种格式
  12. java当中成员变量和局部变量的区别
  13. 笔记5 bean的作用域
  14. jquery性能优化的38个建议
  15. 利用HBuilder将vue项目打包成移动端app
  16. 唯美MACD-完全版
  17. MVC架构介绍-序列化属性
  18. 奇怪吸引子---FourWing
  19. openModelica调试
  20. VS2017写的exe调用Delphi 7写的DLL

热门文章

  1. 【45】谷歌 Inception 网络简介Inception(1)
  2. 社会工程学 | 浅谈“答题”APP的赌博骗局
  3. 数字孪生 VS 平行系统
  4. 关于Web服务器时间修改后遗症
  5. Java第二节课总结
  6. 牛客寒假6-C汉诺塔
  7. 论文阅读笔记(八)【IEEEAccess2019】:High-Resolution and Low-Resolution Video Person Re-Identification: A Benchmark
  8. 数据库异常:SQL Error: 0, SQLState: S0022
  9. 你这是virus吧?
  10. C++ const char *返回值问题