MySQL 8.0 Reference Manual Including MySQL NDB Cluster 8.0
If you get a duplicate-key error when using
ALTER TABLE to change the
character set or collation of a character column, the cause is
either that the new column collation maps two keys to the same
value or that the table is corrupted. In the latter case, you
should run REPAIR TABLE on the
table. REPAIR TABLE works for
MyISAM, ARCHIVE, and
CSV tables.
If you use ALTER TABLE on a
transactional table or if you are using Windows,
ALTER TABLE unlocks the table
if you had done a
LOCK
TABLE on it. This is done because
InnoDB and these operating systems cannot
drop a table that is in use.