Я получаю: ERROR 1709 (HY000): Index column size too large. The maximum column size is 767 bytes.
Здесь много вопросов по этому поводу, я попробовал многие из них.Мой контекст:
- MySQL 8.0 на Amazon RDS
- Одна конкретная таблица имеет varchar (255) на кодировке utf8mb4_unicode_ci
- Эта таблица установлена в ROW_FORMAT Compact
Я уже знаю проблему.Этот столбец использует 4 * 255 байт, но таблица COMPACT может содержать только 767.
То, что я уже пробовал (ни один из них не работает):
- изменить таблицу, чтобы изменить столбец на varchar (100)
- удалить определенный индекс
- удалить весь столбец
- изменить ROW_FORMAT на DYNAMIC или COMPRESSED
Я также пытался восстановить мой самый старыйСнимок RDS (7 дней), и он не работает.Это очень странно, так как приложение работало вчера и в предыдущие дни.
Любая помощь?
Редактировать:
ПОКАЗАТЬ ПОЛНЫЕ КОЛОННЫ дает мне это за оскорблениеколонка:
Field: reasonForNetPromoteScore
Type: varchar(255)
Collation: utf8mb4_unicode_ci
Null: YES
Key: MUL
Default: NULL
Extra:
Privileges: select,insert,update,references
Comment:
, и ПОКАЗАТЬ ИНДЕКС дает мне это:
*************************** 6. row ***************************
Table: Registration
Non_unique: 1
Key_name: registration_reason_net_promote_score
Seq_in_index: 1
Column_name: reasonForNetPromoteScore
Collation: A
Cardinality: 0
Sub_part: NULL
Packed: NULL
Null: YES
Index_type: BTREE
Comment:
Index_comment:
Visible: YES
Expression: NULL
*************************** 7. row ***************************
Table: Registration
Non_unique: 1
Key_name: registration_reason_net_promote_score_nps
Seq_in_index: 1
Column_name: reasonForNetPromoteScore
Collation: A
Cardinality: 0
Sub_part: NULL
Packed: NULL
Null: YES
Index_type: BTREE
Comment:
Index_comment:
Visible: YES
Expression: NULL