Borrar registros duplicados SQL

Facebook
Twitter
LinkedIn
WhatsApp

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: Antes de avanzar en este apartado, asegurate que has hecho el primer paso.

Eliminamos los registros de la tabla clientes

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!! Asegúrate que los nuevos datos que has añadido están bien. Como precaución, mantén la tabla de backup durante unos días y procede a eliminar la tabla

Si te ha gustado este artículo, te invito a que revises los demás artículos publicados AQUÍ

Facebook
Twitter
LinkedIn

1 comentario en “Borrar registros duplicados SQL”

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Scroll al inicio