sql >> Databasteknik >  >> RDS >> Mysql

#1071 - Angiven nyckel var för lång; max nyckellängd är 767 byte

Jag har precis lärt mig en lösning... Skaffa 5.5.14 eller 5.6.3 (eller senare), gör SET som anges här och använd DYNAMIC eller COMPRESSED:

SET GLOBAL innodb_file_per_table = ON,
           innodb_file_format = Barracuda,
           innodb_large_prefix = ON;
CREATE TABLE so29676724 (
  `id` INT NOT NULL AUTO_INCREMENT,
  `hashtag` VARCHAR(255) NOT NULL COMMENT 'hashtag must be unique. Must be saved without #',
   PRIMARY KEY (`id`),
  UNIQUE INDEX `hashtags_hashtag` (`hashtag` ASC)
)
ENGINE = InnoDB
DEFAULT CHARACTER SET  utf8mb4
ROW_FORMAT = COMPRESSED;

SHOW CREATE TABLE so29676724\G

mysql> CREATE TABLE so29676724 (
    ->   `id` INT NOT NULL AUTO_INCREMENT,
    ->   `hashtag` VARCHAR(255) NOT NULL COMMENT 'hashtag must be unique. Must be saved without #',
    ->    PRIMARY KEY (`id`),
    ->   UNIQUE INDEX `hashtags_hashtag` (`hashtag` ASC)
    -> )
    -> ENGINE = InnoDB
    -> DEFAULT CHARACTER SET  utf8mb4
    -> ROW_FORMAT = COMPRESSED;
Query OK, 0 rows affected (0.09 sec)


  1. MySQL och HBase Connectivity

  2. Varför får jag en öppen transaktion när jag bara väljer från en databasvy?

  3. mysql:felkod [1267]; Olaglig blandning av sammanställningar (latin1_general_cs,IMPLICIT) och (latin1_swedish_ci,IMPLICIT) för operation '='

  4. TNSPING OK men sqlplus ger ORA-12154?