У меня есть таблица MySQL, и мне нужно увеличить емкость двух столбцов. С помощью этой команды размер одного столбца изменился нормально:
ALTER TABLE TABLE_NAME MODIFY COLUMN COLUMN_NAME varchar(7000);
Другой столбец вернул сообщение об ошибке:
ОШИБКА 1071 (42000): указанный ключ слишком длинный; максимальная длина ключа составляет 1000 байт
. Ни один из столбцов не является Первичным ключом.
Я затрудняюсь понять, почему один столбец изменился бы в размере без проблем, в то время как другой выбрасывает ошибка
Вот таблица из "DESCRIBE TABLE_NAME"; команда:
+--------------+---------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+--------------+---------------+------+-----+---------+----------------+
| | int(11) | NO | PRI | NULL | auto_increment |
| | int(11) | YES | MUL | NULL | |
| changed col | varchar(7000) | YES | | NULL | |
| | varchar(1023) | YES | | NULL | |
|need to change| varchar(255) | YES | | NULL | |
| | varchar(128) | YES | | NULL | |
| | varchar(128) | YES | | NULL | |
| | varchar(64) | YES | | NULL | |
+--------------+---------------+------+-----+---------+----------------+
Вот моя конфигурация из SHOW VARIABLES LIKE '% char%'; команда:
+--------------------------+----------------------------+
| Variable_name | Value |
+--------------------------+----------------------------+
| character_set_client | utf8 |
| character_set_connection | utf8 |
| character_set_database | utf8 |
| character_set_filesystem | binary |
| character_set_results | utf8 |
| character_set_server | latin1 |
| character_set_system | utf8 |
| character_sets_dir | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+