Borrar registros duplicados SQL

Alfredo
Sígueme!
Últimas entradas de Alfredo (ver todo)
Borrar registros duplicados SQL
Borrar registros duplicados SQL

Cuando hemos añadido datos duplicados y no tenemos datos de más campos que lo puedan diferenciar, resulta un poco complicado borrar registros duplicados.

Te voy a enseñar qué pasos sigo yo para poder borrar registros duplicados:

Paso 1: Antes de manipular datos, realizamos un Backup de la tabla

// CREAMOS LA TABLA QUE NOS SERVIRÁ DE BACKUP (Los campos tienen que ser identicos a la 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 todos los datos de la tabla original 
INSERT INTO clientes_BAK
SELECT idcliente,ncliente,nombre,apellidos,telefono,fecha_alta,idtienda
FROM clientes;

// Comprobaremos que tenemos el mismo número de registros
SELECT COUNT(*) FROM clientes_BAK;
SELECT COUNT(*) FROM clientes;

Paso 2: Detectamos qué registros están duplicados. Podemos comparar con el número de registros del backup y el número de registros que han salido duplicados. Nos servirá de comprobación que lo hemos hecho bien.

SELECT DISTINCT * 
FROM clientes
GROUP BY idcliente,ncliente,nombre,apellidos,telefono,fecha_alta,idtienda
HAVING COUNT(*) > 1

Paso 3 (¡Asegurate que has hecho el primer paso!): Procedemos a borrar datos de la tabla original y vamos a insertar datos sin duplicados

// Borramos los datos de la tabla original
/* OJO: Para otro tipo de consultas no te olvides del WHERE xD */
delete from clientes; 

// Añadimos datos sin duplicados
insert into clientes
select distinct idcliente,ncliente,nombre,apellidos,telefono,fecha_alta,idtienda
FROM clientes_BAK;

Paso 4: Asegura que tus datos están bien, deja ese Backup unos días y procede a eliminarlo.

Alfredo

Desarrollador web de profesión (.NET, jQuery, JavaScript y SQL Server). Amante del fútbol y los videojuegos. Escribo en este blog sobre temas de programación que me parecen interesantes y que quiero compartir con todo el mundo.

También te podría gustar...

Deja una respuesta

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

Este sitio web utiliza cookies para que usted tenga la mejor experiencia de usuario. Si continúa navegando está dando su consentimiento para la aceptación de las mencionadas cookies y la aceptación de nuestra política de cookies, pinche el enlace para mayor información.

ACEPTAR
Aviso de cookies