miércoles, 27 de junio de 2012

Borrar Filas Duplicadas


Siempre es bueno tener una llave única en las tablas del sistema; pero en algunos casos, cuando las llaves son autonumericas o no tiene llave, las inserciones se pueden volver un problema cuando los registro son repetidos y no hay forma de identificar uno del otro, sino solamente por la autonumerica o por el rowid.
Puedes eliminar los registros uno a uno, o con uno de los siguientes script’s:
Borra todos los registros que no esten en los minimos de la misma tabla.
DELETE FROM departamento
WHERE rowid NOT IN(
       SELECT MIN(rowid)
          FROM departamento d
      GROUP BY D.departamento_id
)

Similar a la anterior, pero sin el NOT IN
DELETE FROM departamento A
WHERE ROWID > (
SELECT min(rowid)
FROM departamento BWHERE A.departamento_id = B.departamento_id);

Ahora con Exists


DELETE FROM departamento A
WHERE EXISTS
(
SELECT ‘x’
FROM departamento B
WHERE A.departamento_id = B.departamento_id
AND B.rowid > A.rowid);


No hay comentarios:

Publicar un comentario