我一直得到这个mysql错误代码#1089

osh3o9ms  于 2022-12-28  发布在  Mysql
关注(0)|答案(4)|浏览(182)
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;

我一直收到这个错误:

1089-前缀键不正确;使用的密钥部分不是字符串,使用的长度长于密钥部分,或者存储引擎不支持唯一的前缀密钥。

但我不知道是什么意思,有人知道吗

6tdlim6h

6tdlim6h1#

与部分

PRIMARY KEY (`movie_id`(3))

你告诉mysql在电影id的前3个字节上创建一个子部分键*。这只对字符串类型有效。
你需要使用

PRIMARY KEY (`movie_id`)

而不提供长度。

  • 这确定是查询导致的错误吗?从未在主键上看到过,它用于索引。
oyt4ldly

oyt4ldly2#

创建表时选择PRIMARY KEY后,不要在弹出对话框中输入任何值

4ngedf3f

4ngedf3f3#

如果指定的前缀长度大于实际列的长度,则在创建索引时也会出现此错误。如果尝试创建包含someColumn(20)的索引,但在表中 someColumnVARCHAR(15),则会出现此错误。

wyyhbhjk

wyyhbhjk4#

对于主键,不要输入任何类型长度。

Example:
int()

相关问题