我尝试执行以下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;
有人可以指出造成问题的原因
答案 0 :(得分:4)
将您的电子邮件更改为varchar(255)应该可行。我认为它使用utf-8编码,每个字符最多3个字节,然后767/3 = 255 ... 2 所以你可以将最大长度设置为255