问题:
尝试使用以下查询:
<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中文网其他相关文章!