首页  >  文章  >  数据库  >  为什么我收到 MySQL 错误代码 #1089“前缀键不正确”?

为什么我收到 MySQL 错误代码 #1089“前缀键不正确”?

Patricia Arquette
Patricia Arquette原创
2024-11-01 07:35:30272浏览

Why Am I Getting MySQL Error Code #1089

了解 MySQL 错误代码 #1089

MySQL 错误代码 #1089,“前缀键不正确”,表示主键存在问题或唯一索引。当使用的关键部分不是字符串或所使用的关键部分的长度超过实际关键部分的长度时,会特别发生这种情况。

在提供的 SQL 查询中:

CREATE TABLE `movies`.`movie` (
  `movie_id` INT(3) NULL AUTO_INCREMENT,
  `movie_name` VARCHAR(25) NULL,
  `movie_embedded_id` VARCHAR(50) NULL,
  `rating_no` INT(3) NULL,
  `movie_description` VARCHAR(50) NULL,
  PRIMARY KEY (`movie_id`(3))
) ENGINE = InnoDB;

The问题源于主键 (movie_id(3)) 的使用。此行在 movie_id 列的前三个字节上创建主键,该列由 (3) 段指定。

但是,尝试在数字数据类型(本例中为 INT)上创建前缀MySQL 不支持。这是因为前缀键仅适用于基于字符串的数据类型。

要解决该错误,您应该使用以下查询:

CREATE TABLE `movies`.`movie` (
  `movie_id` INT(3) NULL AUTO_INCREMENT,
  `movie_name` VARCHAR(25) NULL,
  `movie_embedded_id` VARCHAR(50) NULL,
  `rating_no` INT(3) NULL,
  `movie_description` VARCHAR(50) NULL,
  PRIMARY KEY (`movie_id`)
) ENGINE = InnoDB;

通过删除 (3) 段,主键是在整个 movie_id 列上创建的,而不仅仅是其前缀。这解决了问题并允许 MySQL 正确创建主键。

以上是为什么我收到 MySQL 错误代码 #1089“前缀键不正确”?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn