请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

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

[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

3回答

慕用6017204 2019-11-26 14:31:14

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

0 回复 有任何疑惑可以回复我~
翔仔 2017-11-09 17:57:11

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

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

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

找不到要被引用的列

表的字符编码不一样 


0 回复 有任何疑惑可以回复我~
提问者 慕姐0808215 2017-11-09 08:44:09

我已经找到了

0 回复 有任何疑惑可以回复我~
  • 我遇到好几次了,明明按照视频打的还是报错,这是什么原因??
    回复 有任何疑惑可以回复我~ 2018-05-29 21:02:45
  • 同学好,请确保你创建表的顺序不会出错,因为表和表之间有主外键的约束,比如说你创建shop的时候,area,shopcategory以及personinfo这三张表得创建出来。如果你还没具备数据库相关基础知识的话,建议先去w3school里学习sql相关的知识,不然会遇到更多问题
    回复 有任何疑惑可以回复我~ 2018-05-29 22:45:49
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信