错误信息
Error Code: 1071. Specified key was too long; max key length is 767 bytes
表结构
- CREATE TABLE yundou_data_system.`object_event` (
- `id` int(11) unsigned NOT NULL AUTO_INCREMENT,
- `object_id` int(11) unsigned NOT NULL DEFAULT '0',
- `event_name` varchar(256) NOT NULL DEFAULT '',
- `create_time` int(11) unsigned NOT NULL DEFAULT '0',
- `status` tinyint(1) unsigned NOT NULL DEFAULT '1',
- PRIMARY KEY (`id`),
- UNIQUE KEY `unq_event_name` (`event_name`),
- KEY `idx_object_id` (`object_id`)
- ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='对象事件表'
原因
MySQL 的 varchar 主键只支持不超过 767 个字节或者 768/2=384 个双字节 或者 767/3=255 个三字节的字段 而 GBK 是双字节的, UTF8 是三字节的.
解决方案
- `event_name` varchar(255) NOT NULL DEFAULT '',
来源: http://www.bubuko.com/infodetail-2961394.html