mysql#1071 - 指定密钥太长;最大密钥长度为767字节

时间:2016-06-04 08:42:42

标签: mysql

我尝试执行以下SQL,并且上面给出了错误

    CREATE TABLE IF NOT EXISTS `oic_assemblyman_data` (
`id` bigint( 100 ) UNSIGNED NOT NULL AUTO_INCREMENT ,
`firstname` varchar( 300 ) COLLATE utf8_unicode_ci NOT NULL ,
`lastname` varchar( 300 ) COLLATE utf8_unicode_ci NOT NULL ,
`email` varchar( 300 ) COLLATE utf8_unicode_ci DEFAULT NULL ,
`phone` varchar( 300 ) COLLATE utf8_unicode_ci DEFAULT NULL ,
`office_latitude` varchar( 20 ) COLLATE utf8_unicode_ci DEFAULT NULL ,
`office_longitude` varchar( 20 ) COLLATE utf8_unicode_ci DEFAULT NULL ,
`website_welcome_address` text COLLATE utf8_unicode_ci,
`website_header_color` varchar( 15 ) COLLATE utf8_unicode_ci DEFAULT NULL ,
`website_footer_color` varchar( 20 ) COLLATE utf8_unicode_ci DEFAULT NULL ,
`about_yourself` text COLLATE utf8_unicode_ci NOT NULL ,
`password` varchar( 100 ) COLLATE utf8_unicode_ci NOT NULL ,
PRIMARY KEY ( `id` ) ,
UNIQUE KEY `email` ( `email` )
) ENGINE = InnoDB DEFAULT CHARSET = utf8 COLLATE = utf8_unicode_ci;

有人可以指出造成问题的原因

1 个答案:

答案 0 :(得分:4)

将您的电子邮件更改为varchar(255)应该可行。我认为它使用utf-8编码,每个字符最多3个字节,然后767/3 = 255 ... 2 所以你可以将最大长度设置为255