MySQL: ALTER IGNORE TABLE ADD UNIQUE, ¿qué se truncará?


Tengo una tabla con 4 columnas: ID, type, owner, description. ID es la CLAVE PRIMARIA AUTO_INCREMENT y ahora quiero:

ALTER IGNORE TABLE `my_table`
    ADD UNIQUE (`type`, `owner`);

Por supuesto que tengo pocos registros con type = 'Apple' y owner = 'Apple CO'. Así que mi pregunta es ¿qué registro será el especial para quedarse después de esa TABLA ALTER, el que tenga la identificación más pequeña o tal vez el que tenga la mayor como la última insertada?

Author: kuba, 2011-03-28

1 answers

El primer registro se mantendrá, el resto se eliminará §§:

IGNORE es una extensión de MySQL para SQL estándar. Controla cómo ALTERAR LA TABLA funciona si hay duplicados en claves únicas en la nueva tabla o si las advertencias ocurren cuando el modo estricto es permitir. Si no se especifica IGNORE , la copia se aborta y se revierte si se producen errores de clave duplicada. If IGNORE se especifica, solo la primera fila es usado de filas con duplicados en un clave única, La otra filas en conflicto se suprimen . Valores incorrectos truncado a la coincidencia más cercana valor aceptable

Supongo que 'primero' aquí significa el que tiene el ID más pequeño, asumiendo que el ID es la clave primaria.

También tenga en cuenta:

A partir de MySQL 5.7.4, la cláusula IGNORE para ALTER TABLE es eliminada y su uso produce un error .

 42
Author: Galz,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-02-06 09:45:03