sql >> Database teknologi >  >> RDS >> Mysql

MySQL VARCHAR(255) UTF8 er for lang til nøgle, men maks. længde er 1000 bytes

Hvis du bruger utf8mb4, og du har unikke indekser på varchar-kolonner, der er længere end 191 tegn, skal du slå innodb_large_prefix til for at tillade større kolonner i indekser, fordi utf8mb4 kræver mere lagerplads end utf8 eller latin1 . Tilføj følgende til din my.cnf-fil.

[mysqld]
innodb_file_format=barracuda
innodb_file_per_table=1
innodb_large_prefix=1
init_connect='SET collation_connection = utf8mb4_unicode_ci; SET NAMES utf8mb4'
character-set-server=utf8mb4
collation-server=utf8mb4_unicode_ci

Mere info om hvorfor og fremtiden fra MySQL 5.7-dokumentation :

For at opsummere er grænsen kun der for kompatibilitet og vil blive øget i fremtidige versioner.



  1. mysql indsæt, hvis værdi ikke findes i en anden tabel

  2. Hvordan finder man ud af, at brugeren er til stede i Sqlite-databasen ved hjælp af Android?

  3. MySQL Alter Stored Procedure

  4. Forstå hvad sp_updatestats virkelig opdaterer