Portal    Foro    Buscar    FAQ    Registrarse    Conectarse


Publicar nuevo tema  Responder al tema 
Página 1 de 1
 
 
Sql Borrar Y Editar Un Solo Registro Cuando Son Duplicados En SQL
Autor Mensaje
Responder citando   Descargar mensaje  
Mensaje Sql Borrar Y Editar Un Solo Registro Cuando Son Duplicados En SQL 
 
e estado buscando en manuales y luego en google
solo e encontrado preguntas similares sin respuesta

"Si tengo una tabla y dentro de ella 4 registros exactamente iguales, pero sin algun identificador, como le puedo hacer para borrar unicamente uno de ellos?

Gracias por adelantado."
 



 
codificador - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Sql Borrar Y Editar Un Solo Registro Cuando Son Duplicados En SQL 
 
Huyyyy esta como difícil Codificador, porque para todo registro se necesita un ide con su llave primaria, recuerdo que en gambas 2 había un problema con sqlite que cuando le borraba algún campo a la tabla no me acuerdo si era también la ide, la base de datos quedaba corrupta no se podía arreglar ni borrar, yo decía no puede ser, esto es grave mi hermano!!!, entonces experimente en gambas 3 y me dio una gran risa cuando vi que Benoit como que se dio cuenta de la cuestión nose si estoy equivocado! pero le creo una opción que dice editar jajajaja y note que se creaba otro campo mas abajo, como para evitar algún error o datos corruptos jajaja, pero esa cuestión suya me tiene pensativo.

Saludos
 



 
jousseph - Ver perfil del usuarioEnviar mensaje privadoVer la galería personal del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje  
 
bien

llevo dias pensando en esto y buscando la solucion
en todos los otros foros dicen que no se puede o que cambie el diseño de la tabla

y como ultima opcion publique en este foro

digo
"si se pueden crear individualmente registros duplicados debe haber una forma de eliminarlos individualmete"

como todavia me quedaba algo de energia

entonces me puse a jugar con el libreoficee base

hasta que recorde
 
-ver mas alla de lo evidente  ohhhhhhhhhhhhhhhhh

debe haber otro camino

si puedo mostrar un solo registro con un select
y
en sql se puede usar una subconsulta como (from)tabla

entonces
 delete * from (subconsulta que devuelve un solo registro)

y funcionaaaaaaaaaaa

ahora solo me falta probar el update
que debe ser un poco mas largo
 



 
codificador - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Sql Borrar Y Editar Un Solo Registro Cuando Son Duplicados En SQL 
 
Hay una capacidad de SQL que no es muy utilizada, pero que te resuelve eso sin problemas. Es la posibilidad de relacionar una tabla consigo misma.
Por ejemplo, para detectar duplicados:

Código: [Descargar] [Ocultar] [Seleccionar]

Select * from miTabla A, miTabla B where a.campo1 = b.campo1 and a.campo2=b.campo2

 


Más simple aún, si lo que quieres es no ver los duplicados:

Código: [Descargar] [Ocultar] [Seleccionar]

Select distinct * from miTabla

 


Ahora: ¡CREA CLAVES ÚNICAS! Es condición mínima para que una tabla de una base de datos sea una tabla de una base de datos. Sin eso, lo mismo te da guardar tus datos en un fichero de texto y buscarlos con la opción buscar del gedit...   
 



 
shordi - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Sql Borrar Y Editar Un Solo Registro Cuando Son Duplicados En SQL 
 
shordi escribió: [Ver mensaje]
Hay una capacidad de SQL que no es muy utilizada, pero que te resuelve eso sin problemas. Es la posibilidad de relacionar una tabla consigo misma.
Por ejemplo, para detectar duplicados:

Código: [Descargar] [Ocultar] [Seleccionar]

Select * from miTabla A, miTabla B where a.campo1 = b.campo1 and a.campo2=b.campo2

 


Más simple aún, si lo que quieres es no ver los duplicados:

Código: [Descargar] [Ocultar] [Seleccionar]

Select distinct * from miTabla

 


Ahora: ¡CREA CLAVES ÚNICAS! Es condición mínima para que una tabla de una base de datos sea una tabla de una base de datos. Sin eso, lo mismo te da guardar tus datos en un fichero de texto y buscarlos con la opción buscar del gedit...   


los select funcionan bien el problema era con los updates y delete
y usandolos como  subconsulta funciona bien
solo que queda un poco mas largo
tanto que me gustaria que los fines de linea fueran con un ;
como en otros lenguajes

pero yo si queria ver duplicados
y borrarlos  y editarlos invividualmente

de hecho si ves programas como sqlitemanager crea un rownumber automatico  que funciona como clave

y phpadmin no soporta  editar o borrar graficamente  registros repetidos individualmente

sin embargo  libreoffice no tiene esos problemas para hacerlo en modo grafico

por que la tabla no tiene clave
por que es un dbf y con el programa orginal funcionaba bien en su 286
salvo por este problema del sql, relmente por los datos que guarda no tiene mucho sentido que tambien tengan clave
 



 
codificador - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Sql Borrar Y Editar Un Solo Registro Cuando Son Duplicados En SQL 
 
Código: [Descargar] [Ocultar] [Seleccionar]
, relmente por los datos que guarda no tiene mucho sentido que tambien tengan clave

Discrepo. Aunque guardase sólo un registro toda tabla necesita una clave. Los dbf (en los tiempos del msdos es cuando yo los trataba, e imagino que ahora sigue igual) sí soportaban índices, que se almacenaban en ficheros extensión .idx, si no recuerdo mal... y/o .ndx (no recuerdo. Qué malo es hacerse viejo).
Si tiene mucho sentido por cuanto mira qué follón te llevas para actualizar y borrar.
Sí tiene sentido, por cuanto evitarías esos duplicados.
Pero, en fin, tu sabrás mejor que yo de qué va ese tema.

Saludos.
 



 
shordi - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje  
 
si


solo que el programador de la tabla no usaba claves y tampoco usaba sql
y el programa funcionaba

esta tabla es especial por que los duplicados no son duplicados
por lo tanto no los puedo eliminar

otra idea que se me acaba de ocurrir al leer tu respuesta es  agregar un campo autonmerico como campo clave

de todas maneras tengo que hacer mas cambios en la base
 



 
última edición por codificador el Sabado, 22 Junio 2013, 03:33; editado 1 vez 
codificador - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Sql Borrar Y Editar Un Solo Registro Cuando Son Duplicados En SQL 
 
Siempre se pueden eliminar. Prueba algo así:
Código: [Descargar] [Ocultar] [Seleccionar]

CREATE TABLE tabletemp AS SELECT DISTINCT * FROM mitabla;

DELETE * FROM mitabla;

INSERT INTO mitabla SELECT * FROM tabletemp;

DROP TABLE tabletemp

 


Y ya está, duplicados eliminados. Ahora añades un autonumérico como clave primaria y todo arreglado.

Saludos
 



 
shordi - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Sql Borrar Y Editar Un Solo Registro Cuando Son Duplicados En SQL 
 
shordi escribió: [Ver mensaje]
Siempre se pueden eliminar. Prueba algo así:
Código: [Descargar] [Ocultar] [Seleccionar]

CREATE TABLE tabletemp AS SELECT DISTINCT * FROM mitabla;

DELETE * FROM mitabla;

INSERT INTO mitabla SELECT * FROM tabletemp;

DROP TABLE tabletemp

 


Y ya está, duplicados eliminados. Ahora añades un autonumérico como clave primaria y todo arreglado.

Saludos


gracias

pero es que no son duplicdos son registros iguales
es la tipica tabla_detalle
que se suman y se obtiene un total
si borro los duplicados el total  que esta guardado en otra tabla ya no coincide

el  autonumerico sin eliminar nada es lo mas facil

mi idea original  funciona pero las consultas quedan demasiado grandes
 



 
codificador - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Mostrar mensajes anteriores:    
 
OcultarTemas parecidos
Tema Autor Foro Respuestas último mensaje
No hay nuevos mensajes Borrar Un Registro numero110 Bases de Datos 13 Sabado, 05 Diciembre 2009, 00:45 Ver último mensaje
shordi
No hay nuevos mensajes Al Editar Registro No Guarda La Fecha SerÃ... kexxya Bases de Datos 3 Viernes, 10 Junio 2011, 15:37 Ver último mensaje
skaterleopoldo12
No hay nuevos mensajes Borrar Registro En Listview/gridview destroyer Controles/Librerías/Componentes 9 Miercoles, 14 Septiembre 2011, 19:14 Ver último mensaje
ahtonio
No hay nuevos mensajes Editar Un Registro De Una Base De Datos SergioDanyelpy Bases de Datos 2 Domingo, 25 Agosto 2013, 20:38 Ver último mensaje
jousseph
 

Publicar nuevo tema  Responder al tema  Página 1 de 1
 

Usuarios navegando en este tema: 0 registrados, 0 ocultos y 1 invitado
Usuarios registrados conectados: Ninguno


 
Lista de permisos
No puede crear mensajes
No puede responder temas
No puede editar sus mensajes
No puede borrar sus mensajes
No puede votar en encuestas
No puede adjuntar archivos
Puede descargar archivos
No puede publicar eventos en el calendario



  

 

cron