Однако, когда используется как первичный ключ , MySQL предполагает, что каждый предел размера столбца добавляет 3 байта к ключу.
mysql> alter table test2 modify code varchar(333) character set utf8;
Query OK, 0 rows affected (0.05 sec)
Records: 0 Duplicates: 0 Warnings: 0
mysql> alter table test2 modify code varchar(334) character set utf8;
ERROR 1071 (42000): Specified key was too long; max key length is 1000 bytes
Хорошо, используя longСтроковые столбцы в качестве первичного ключа, как правило, являются практикой, но я столкнулся с этой проблемой при работе с базой данных одного коммерческого (!) продукта.