Para eliminar los duplicados en una tabla definida como:
CREATE TABLE IF NOT EXISTS TabTest (
clave_prim integer(4) NOT NULL auto_increment,
x integer,
y integer,
z integer,
Constraint pk_Tab_test PRIMARY KEY (clave_prim)
);
Lo primero que hay que hacer es fijar los campos relativos a los duplicados (en nuestro caso los campos x e y):
mysql> select * from TabTest;
+----------+------+------+------+
| clave_prim | x | y | z |
+----------+------+------+------+
| 1 | 1 | 2 | 3 |
| 2 | 1 | 2 | 3 |
| 3 | 1 | 5 | 4 |
| 4 | 1 | 6 | 4 |
+----------+------+------+------+
4 rows in set (0.00 sec)
Para eliminar los duplicados en los campos x e y ejecutar el comando:
ALTER IGNORE TABLE TabTest ADD UNIQUE INDEX(x,y);
PD: El
artículo original fue escrito por wjaouadi, contribuidor de
CommentCaMarche