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-前缀键不正确;使用的密钥部分不是字符串,使用的长度长于密钥部分,或者存储引擎不支持唯一的前缀密钥。
但我不知道是什么意思,有人知道吗
4条答案
按热度按时间6tdlim6h1#
与部分
你告诉mysql在电影id的前3个字节上创建一个子部分键*。这只对字符串类型有效。
你需要使用
而不提供长度。
oyt4ldly2#
创建表时选择PRIMARY KEY后,不要在弹出对话框中输入任何值
4ngedf3f3#
如果指定的前缀长度大于实际列的长度,则在创建索引时也会出现此错误。如果尝试创建包含
someColumn(20)
的索引,但在表中 someColumn 为VARCHAR(15)
,则会出现此错误。wyyhbhjk4#
对于主键,不要输入任何类型长度。