MySQL: ALTER IGNORE TABLE ADD UNIQUE, what will be truncated?

The first record will be kept, the rest deleted §§:

IGNORE is a MySQL extension to
standard SQL. It controls how ALTER
TABLE works if there are duplicates on
unique keys in the new table or if
warnings occur when strict mode is
enabled. If IGNORE is not specified,
the copy is aborted and rolled back if
duplicate-key errors occur. If IGNORE
is specified, only the first row is
used of rows with duplicates on a
unique key, The other conflicting rows
are deleted. Incorrect values are
truncated to the closest matching
acceptable value

I am guessing ‘first’ here means the one with the smallest ID, assuming the ID is the primary key.

Also note:

As of MySQL 5.7.4, the IGNORE clause for ALTER TABLE is removed and its use produces an error.

Leave a Comment