标签:tin 成功 har string http ram ted distinct content
MYSQL ERROR 1071 (42000): Specified key was too long; max key length is 767 byte
drop table if exists test; create table test(test varchar(767) primary key)charset=latin5; -- 成功 drop table if exists test; create table test(test varchar(768) primary key)charset=latin5; -- 错误 -- ERROR 1071 (42000): Specified key was too long; max key length is 767 bytes drop table if exists test; create table test(test varchar(383) primary key)charset=GBK; -- 成功 drop table if exists test; create table test(test varchar(384) primary key)charset=GBK; -- 错误 -- ERROR 1071 (42000): Specified key was too long; max key length is 767 bytes drop table if exists test; create table test(test varchar(255) primary key)charset=UTF8; -- 成功 drop table if exists test; create table test(test varchar(256) primary key)charset=UTF8; -- 错误 -- ERROR 1071 (42000): Specified key was too long; max key length is 767 bytes
MySQL的varchar主键只支持不超过768个字节 或者 768/2=384个双字节 或者 768/3=256个三字节的字段 ,而 GBK是双字节的,UTF-8是三字节的。
MySQL ERROR 1071 (42000): Specified key was too long; max key length is 767 bytes 的原因分析
查看mysql表结构的方法有三种:
1、mysql> desc tablename; # 查看表的结构
+------------------+---------------------+------+-----+---------------------+----------------+ | Field | Type | Null | Key | Default | Extra | +------------------+---------------------+------+-----+---------------------+----------------+ | id | int(11) | NO | PRI | NULL | auto_increment | | title | text | NO | | NULL | | | content | text | NO | | NULL | | | ordering | int(11) | NO | | 0 | | | position | varchar(50) | YES | | NULL | | | checked_out | int(11) unsigned | NO | | 0 | | | checked_out_time | datetime | NO | | 0000-00-00 00:00:00 | | | published | tinyint(1) | NO | MUL | 0 | | | module | varchar(50) | YES | MUL | NULL | | | numnews | int(11) | NO | | 0 | | | access | tinyint(3) unsigned | NO | | 0 | | | showtitle | tinyint(3) unsigned | NO | | 1 | | | params | text | NO | | NULL | | | iscore | tinyint(4) | NO | | 0 | | | client_id | tinyint(4) | NO | | 0 | | | control | text | NO | | NULL | | +------------------+---------------------+------+-----+---------------------+----------------+
2、mysql> show create table tablename; # 查看创建表的sql语句
3、mysql>select COLUMN_NAME from information_schema.COLUMNS where table_name = ‘tablename‘ and TABLE_SCHEMA =‘databasename‘;
# 查看列名
查看mysql表结构和表创建语句的方法,建表42000错误解决办法
标签:tin 成功 har string http ram ted distinct content
原文地址:http://www.cnblogs.com/domestique/p/7860570.html