Cuando accedemos a nuestra base de datos, comprobamos nuestras tablas, y, vemos que hemos añadido registros duplicados. No tenemos datos de los demás campos que lo puedan diferenciar y resulta un poco complicado borrar registros duplicados. No te preocupes, ¡¡HAY SOLUCIÓN!!
Te voy a enseñar los pasos que sigo yo para poder borrar registros duplicados de nuestra base de datos:
Paso 1: Realizamos copia de seguridad de los datos
Creamos una tabla que nos servirá de respaldo de los datos. Recuerda que Los campos tienen que ser idénticos a la tabla original:
CREATE TABLE clientes_BAK ( idcliente INT(5), ncliente INT(5), nombre VARCHAR(20), apellidos VARCHAR(50) NULL, telefono VARCHAR(9) NULL, fecha_alta DATE NULL, idtienda INT(5) NULL );
Volcamos los datos de la tabla original a clientes_bak
INSERT INTO clientes_BAK SELECT idcliente,ncliente,nombre,apellidos,telefono,fecha_alta,idtienda FROM clientes;
Comprobaremos que tenemos el mismo número de registros tanto en la tabla clientes, como en la tabla clientes_bak
SELECT COUNT(*) FROM clientes_BAK; SELECT COUNT(*) FROM clientes;
Paso 2: Detectamos los registros duplicados
Ahora para poder detectar qué registros están duplicados de nuestra tabla. Lo primero que vamos a hacer, es comparar con el número de registros del backup y el número de registros que han salido duplicados. Esto nos va a servir de comprobación y de que lo hemos hecho bien.
Si no sabes como poder agrupar y filtrar datos, te paso la domentación de GROUP BY y HAVING
SELECT DISTINCT *
FROM clientes
GROUP BY idcliente,ncliente,nombre,apellidos,telefono,fecha_alta,idtienda
HAVING COUNT(*) > 1
Paso 3: Eliminamos los registros duplicados
Importante:
DELETE FROM clientes
Añadimos registros a la tabla clientes con la siguiente consulta:
INSERT INTO clientes
SELECT DISTINCT idcliente,ncliente,nombre,apellidos,telefono,fecha_alta,idtienda
FROM clientes_BAK;
¡¡Y ya hemos eliminado los registros duplicados de la tabla clientes!!
Si te ha gustado este artículo, te invito a que revises los demás artículos publicados AQUÍ
1 comentario en “Borrar registros duplicados SQL”
Buena solucion amiga mio