mysql - foreign - unique constraint oracle
MySQL: ALTER IGNORE TABLE ADD UNIQUE, ¿qué se truncará? (1)
El primer registro se mantendrá, el resto se eliminará §§ :
IGNORE
es una extensión de MySQL para SQL estándar. Controla cómo funciona ALTER TABLE si hay duplicados en claves únicas en la nueva tabla o si se producen advertencias cuando el modo estricto está habilitado. Si no se especificaIGNORE
, la copia se cancela y se retrotrae si se producen errores de clave duplicada. Si se especificaIGNORE
, solo se utiliza la primera fila de filas con duplicados en una clave única, se eliminan las otras filas en conflicto. Los valores incorrectos se truncan al valor aceptable coincidente más cercano
Estoy adivinando ''primero'' aquí significa el que tiene la ID más pequeña, asumiendo que la ID es la clave principal.
También tenga en cuenta:
A partir de MySQL 5.7.4, la cláusula
IGNORE
paraALTER TABLE
se elimina y su uso produce un error .
Tengo una tabla con 4 columnas: ID, tipo, propietario, descripción. ID es AUTO_INCREMENT PRIMARY KEY y ahora quiero:
ALTER IGNORE TABLE `my_table`
ADD UNIQUE (`type`, `owner`);
Por supuesto, tengo pocos registros con tipo = ''Apple'' y propietario = ''Apple CO''. Entonces, mi pregunta es: ¿cuál será el registro especial para quedarse después de ALTER TABLE, el que tenga la ID más pequeña o quizás el que tenga la más grande como la última insertada?