[Err] 1005 - Can't create table 'o2o.tb_product' (errno: 150)

来源:2-4 实体类设计与表创建C

慕姐0808215

2017-11-08

[SQL] 

CREATE TABLE `o2o`.`tb_product`(

`product_id` INT(100) NOT NULL AUTO_INCREMENT,

`product_name` VARCHAR(100) NOT NULL DEFAULT'',

`product_desc` VARCHAR(2000) DEFAULT'',

  `img_addr` VARCHAR(2000)  DEFAULT'',

`normal_price` VARCHAR(100) DEFAULT NULL,

`promotion_price` VARCHAR(100) DEFAULT NULL,

  `priority` INT(2) NOT NULL DEFAULT'0',

`creat_time` datetime DEFAULT NULL,

`last_edit_time` datetime DEFAULT NULL,

`enable_status`INT(2) NOT NULL DEFAULT '0',

`product_category_id` INT(11) DEFAULT NULL,

   `shop_id` int(20) not null DEFAULT'0',

PRIMARY key(`product_id`),

  CONSTRAINT `fk_product_procate` FOREIGN KEY(`product_category_id`) REFERENCES `tb_prodcut_category`(`product_category_id`),

CONSTRAINT `fk_product_shop` FOREIGN KEY(`shop_id`) REFERENCES `tb_shop`(`shop_id`)

)ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8


[Err] 1005 - Can't create table 'o2o.tb_product' (errno: 150)


写回答

3回答

慕用6017204

2019-11-26

我写的时候也是这个错,看了下该有的表都有,但还是报这个错。最后索性在创建表的时候不添加外键(可添加主键),等表创建出来后再alter添加,就不报错了。

0
0

翔仔

2017-11-09

同学好,请确保您的外键对应的表以及字段是正确的,咱们商品还关联了好几个表,请确保他们先被创建出来

mysql error Number 1005
can't creat table'/test/#sql-640_1.frm'(errno:150)三种可能问题

外键和被引用外键类型不一样,比如integer和double

找不到要被引用的列

表的字符编码不一样 


0
0

慕姐0808215

提问者

2017-11-09

我已经找到了

0
2
翔仔
回复
程序不加电
同学好,请确保你创建表的顺序不会出错,因为表和表之间有主外键的约束,比如说你创建shop的时候,area,shopcategory以及personinfo这三张表得创建出来。如果你还没具备数据库相关基础知识的话,建议先去w3school里学习sql相关的知识,不然会遇到更多问题
2018-05-29
共2条回复

Java双版本(SSM到SpringBoot)校园商铺全栈开发

SSM商铺V1.0,解决毕设痛点;SpringBoot商铺V2.0,满足工作刚需

5113 学习 · 8144 问题

查看课程