MySQL 错误 'Can't create table 'college.goods' (errno: 150)' 解决方法

当您在 MySQL 中执行创建表的语句时,遇到错误 'Can't create table 'college.goods' (errno: 150)',这通常是因为外键约束的问题。

错误原因:

此错误通常表明您尝试在表 goods 中创建外键约束,但该外键引用了另一个表(student)中的 Sid 字段,而这两个字段的类型或长度不一致。

解决方法:

  1. 检查表字段类型和长度:

    • 确保表 student 中的 Sid 字段类型和长度与表 goods 中的 Sid 字段类型和长度一致。例如,如果 student 表中的 SidINT(11) 类型,那么 goods 表中的 Sid 也应该使用 INT(11) 类型。
  2. 修改表结构:

    • 如果字段类型或长度不一致,您需要修改其中一个或两个表以确保一致性。例如,您可以将 goods 表中的 Sid 字段类型修改为 INT(11)

示例代码:

DROP TABLE IF EXISTS `goods`;
CREATE TABLE `goods`  (
  `Gid` int(0) NOT NULL AUTO_INCREMENT,
  `Sid` int(0) NULL DEFAULT NULL,
  `Gname` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
  `Gbuyprice` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
  `Gsellprice` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
  `Gphoto` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
  `Gdescribe` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
  `Gaudit` enum('0','1') CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '0',
  `Gstatus` enum('0','1','2','3') CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '0',
  `Gtime` datetime NULL DEFAULT NULL,
  `Gupdate_time` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  `SELLusername` varchar(40) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
  PRIMARY KEY (`Gid`) USING BTREE,
  INDEX `Sid`(`Sid`) USING BTREE,
  CONSTRAINT `Sid` FOREIGN KEY (`Sid`) REFERENCES `student` (`Sid`) ON DELETE RESTRICT ON UPDATE RESTRICT
) ENGINE = InnoDB AUTO_INCREMENT = 40 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = Dynamic;

注意:

  • 确保您对数据库操作有足够的了解,避免意外数据丢失或损坏。
  • 如果您不确定如何修改表结构,请咨询您的数据库管理员或参考 MySQL 官方文档。

总结:

MySQL 错误 'Can't create table 'college.goods' (errno: 150)' 通常由外键约束引发的类型或长度不一致问题导致。通过检查表结构并确保外键引用字段类型和长度一致,即可解决此错误。

MySQL 错误 'Can't create table 'college.goods' (errno: 150)' 解决方法

原文地址: https://www.cveoy.top/t/topic/oWwA 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录