Mysql
 sql >> база данни >  >> RDS >> Mysql

#1071 - Посоченият ключ е твърде дълъг; максималната дължина на ключа е 767 байта

Току-що научих заобиколно решение... Вземете 5.5.14 или 5.6.3 (или по-нова), направете посочените тук SET и използвайте DYNAMIC или 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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. db2 еквивалент на MySql REPLACE INTO

  2. Mysql2::Грешка:Неправилна стойност на низа

  3. Ускоряване на заявките GROUP BY, SUM и AVG

  4. Преобразуване на времева марка на поле за дата и час от mysql в php

  5. java.sql.SQLException:Достъпът е отказан за потребител '[email protected]'@'localhost' (използвайки парола:ДА)