首页 >数据库 >mysql教程 >为什么我在创建 MySQL 表时收到'前缀键不正确”错误 (#1089)?

为什么我在创建 MySQL 表时收到'前缀键不正确”错误 (#1089)?

Patricia Arquette
Patricia Arquette原创
2024-10-30 02:33:03402浏览

Why am I getting the

MySQL 错误:前缀键不正确 (#1089)

问题:

尝试使用以下查询:

<code class="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;</code>

遇到以下错误:

#1089 - Incorrect prefix key; the used key part isn't a string, the used length is longer than the key part, or the storage engine doesn't support unique prefix keys.

答案:

发生错误是因为 PRIMARY KEY 定义指定子部分密钥,即只有 movie_id 的前 3 个字节。仅字符串数据类型支持此功能。对于数字数据类型的主键,必须包含完整长度,而不指定子部分:

<code class="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`)) ENGINE = InnoDB;</code>

进行此更改后,错误不应再出现,并且表将成功创建。

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

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