【发布时间】:2016-10-04 08:06:06
【问题描述】:
我尝试执行下面的 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;
谁能指出问题的原因
【问题讨论】:
-
错误是不言自明的。密钥的长度大于接受的长度。你能把钥匙贴出来吗?
-
主键是“id bigint(100)”。
-
对您的 varchars 使用
255的长度而不是 300 -
@juergend 既然最大密钥长度是 767,为什么 300 字节会有问题?
-
谢谢@juergen d。 254 人工作
标签: mysql