Mysql Error Code#150-- 在使用 mysql 创建表时,是否有解决此错误的解决方案?

问题描述 投票:0回答:1
CREATE TABLE `product` (  
  `id` int(11) NOT NULL PRIMARY key AUTO_INCREMENT,  
  `p_name` varchar(250) NOT NULL,  
  `p_category` varchar(250),  
  `p_sub` varchar(255) NOT NULL,  
  `p_brand` varchar(250) NOT NULL,  
  `p_price` int(11) NOT NULL,  
  `p_desc` varchar(5000) NOT NULL,  
  `p_qty` int(11) NOT NULL,  
  `p_image` varchar(200) NOT NULL,   
  Foreign Key(`p_category`) references categories(`cid`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci;

#1005 - 无法创建表

testing
.
product
(errno:150“外键约束形成不正确”)

这是我的类别表

CREATE TABLE `category` (
  `cid` int(11) primary key NOT NULL auto increment,
  `name` varchar(200) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci;

我需要可以从类别表中获取所有类别 ID 并将其显示在 p_category 表中的产品表中的解决方案

php mysql foreign-keys
1个回答
0
投票

你的表被称为

category
但是你的外键引用
categories

Foreign Key(`p_category`) references categories(`cid`)

此外,即使您修复了该问题,

product.p_category
列也是
varchar(250)
但它引用了
category.cid
int
.

它们必须是相同的数据类型。

附言

int(11)
的“长度”无关紧要,它在 MySQL 8 中已弃用。请使用
int
(无长度参数)。

© www.soinside.com 2019 - 2024. All rights reserved.