添加PRIMARY KEY索引时对此SQL代码的说明

时间:2017-03-22 14:59:35

标签: mysql sql

我看到了以下SQL代码。我完全理解它。但是没有得到的是代码中的 66

CREATE TABLE `wordpress`.`campaign_queue` ( 
      `id` BIGINT(20) NOT NULL AUTO_INCREMENT , PRIMARY KEY (`id`(66))
) ENGINE = InnoDB;

2 个答案:

答案 0 :(得分:1)

这会给你错误:

CREATE TABLE `campaign_queue1` ( 
      `id` BIGINT(20) NOT NULL AUTO_INCREMENT , PRIMARY KEY (`id`(66))
) ENGINE = InnoDB;

因为(66)是设置字符串长度。

  

前缀键不正确;使用的关键部分不是字符串,使用的长度比关键部分长,或者存储引擎不支持唯一的前缀键

如果您将类型更改为VARCHAR,则问题将出现在AUTO_INCREMENT

CREATE TABLE `campaign_queue2` ( 
      `id` VARCHAR(100) NOT NULL AUTO_INCREMENT, PRIMARY KEY (`id`(10))
) ENGINE = InnoDB;
  

列'id'

的列说明符不正确

答案 1 :(得分:1)

查询说明:它告诉MySQL在 id 列的前66个字母上创建子部分键* 。这仅适用于字符串类型,因此除非您将字段类型更改为字符串

,否则查询将返回错误