我看到了以下SQL代码。我完全理解它。但是没有得到的是代码中的 66 。
CREATE TABLE `wordpress`.`campaign_queue` (
`id` BIGINT(20) NOT NULL AUTO_INCREMENT , PRIMARY KEY (`id`(66))
) ENGINE = InnoDB;
答案 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个字母上创建子部分键* 。这仅适用于字符串类型,因此除非您将字段类型更改为字符串
,否则查询将返回错误