zoukankan      html  css  js  c++  java
  • 查看mysql表结构和表创建语句的方法,建表42000错误解决办法

    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语句

    1. mysql> show create table jos_modules;  
    2. jos_modules | CREATE TABLE `jos_modules` (  
    3. `id` int(11) NOT NULL AUTO_INCREMENT,  
    4. `title` text NOT NULL,  
    5. `content` text NOT NULL,  
    6. `ordering` int(11) NOT NULL DEFAULT '0',  
    7. `position` varchar(50) DEFAULT NULL,  
    8. `checked_out` int(11) unsigned NOT NULL DEFAULT '0',  
    9. `checked_out_time` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',  
    10. `published` tinyint(1) NOT NULL DEFAULT '0',  
    11. `module` varchar(50) DEFAULT NULL,  
    12. `numnews` int(11) NOT NULL DEFAULT '0',  
    13. `access` tinyint(3) unsigned NOT NULL DEFAULT '0',  
    14. `showtitle` tinyint(3) unsigned NOT NULL DEFAULT '1',  
    15. `params` text NOT NULL,  
    16. `iscore` tinyint(4) NOT NULL DEFAULT '0',  
    17. `client_id` tinyint(4) NOT NULL DEFAULT '0',  
    18. `control` text NOT NULL,  
    19. PRIMARY KEY (`id`),  
    20. KEY `published` (`published`,`access`),  
    21. KEY `newsfeeds` (`module`,`published`)  
    22. ) ENGINE=MyISAM AUTO_INCREMENT=145 DEFAULT CHARSET=utf8  

    3、mysql>select COLUMN_NAME from information_schema.COLUMNS where table_name = 'tablename' and TABLE_SCHEMA ='databasename';

         # 查看列名

    1. +----------------------------+
    2. | COLUMN_NAME                
    3. +----------------------------+
    4. | id                                           
    5. | distinct_name                     
    6. | offical_domain                     
    7. | offical_ip                             
    8. | offical_ip_loc                      
    9. | similar_domain_regex         
    10. | title_keywords                      
    11. | content_sensitive_keywords
    12. | out_link_offical_rate            
    13. | icp_code                            
    14. | reserved_one                     
    15. | reserved_two                    
    16. | reserved_three                  
    17. | update_time                       
    18. +----------------------------+

      

  • 相关阅读:
    新学期,新起点
    判断整数的正负零特性
    C# 静态类与非静态类、静态成员的区别
    适配器模式:类适配器和对象适配器
    设计模式学习笔记
    C# 全局变量的实现
    设计模式
    Tuples in .Net 4 (System.Tuple)
    EnableViewState
    HashMap 、HashTable、HashSet的区别
  • 原文地址:https://www.cnblogs.com/domestique/p/7860570.html
Copyright © 2011-2022 走看看