zoukankan      html  css  js  c++  java
  • Specified key was too long; max key length is 767 bytes

    MySQL>  use test; create table test(a varchar(512) primary key, b varchar(1024));
    Database changed
    ERROR 1071 (42000): Specified key was too long; max key length is 767 bytes
    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> show variables like '%char%';
    +--------------------------+--------------------------------------------------+
    | Variable_name            | Value                                            |
    +--------------------------+--------------------------------------------------+
    | character_set_client     | latin1                                           |
    | character_set_connection | latin1                                           |
    | character_set_database   | utf8                                             |
    | character_set_filesystem | binary                                           |
    | character_set_results    | latin1                                           |
    | character_set_server     | utf8                                             |
    | character_set_system     | utf8                                             |
    | character_sets_dir       | /opt/schooner/ac_3.1/mysql/share/mysql/charsets/ |
    +--------------------------+--------------------------------------------------+
    8 rows in set (0.00 sec)
  • 相关阅读:
    浏览器屏蔽百度搜索右侧热搜推荐脚本,收拾流氓头子
    js简单代码实现大banner轮播
    jquery回到顶部代码
    jquery实现隔行换色及移入移出效果
    利用:before和:after给段落添加效果的应用实例
    nginx配置文件应对网站攻击采集垃圾蜘蛛的方法总结
    Cygwin统计日志常用代码,欢迎各位大神补全
    原生js鼠标拖拽div左右滑动
    Day 82 VUE——基础
    Day 81 ES6
  • 原文地址:https://www.cnblogs.com/jing99/p/7768286.html
Copyright © 2011-2022 走看看