Назад | Перейти на главную страницу

mysql Ошибка изменения таблицы для сжатия данных с «Дублирующейся записью»

Я пытался сжать несколько таблиц, но одна из них вызвала эту ошибку

изменить таблицу MY_table row_format = сжатый, алгоритм = INPLACE, LOCK = NONE; Запрос выполнен, затронуты 0 строк (0,00 сек)
ОШИБКА 1062 (23000): повторяющаяся запись 740003820 для ключа PRIMARY.

Затем попробовал то же самое с

изменить таблицу MY_table row_format = compressed;

Получена такая же ошибка 1062 Повторяющаяся запись.

По данным DOC https://dev.mysql.com/doc/refman/5.6/en/innodb-create-index-limitations.html

При выполнении операции ALTER TABLE в оперативном режиме поток, выполняющий операцию ALTER TABLE, будет применять «оперативный журнал» операций DML, которые выполнялись одновременно в той же таблице из других потоков подключения. Когда применяются операции DML, можно столкнуться с ошибкой дублирования ключевой записи (ОШИБКА 1062 (23000): Дублирующаяся запись), даже если дублирующаяся запись является только временной и будет отменена более поздней записью в «онлайн-журнале» . Это похоже на идею проверки ограничений внешнего ключа в InnoDB, в которой ограничения должны сохраняться во время транзакции.

Какие у меня варианты?