eliminar solo un registro
hola necesito eliminar solo un registro en un delete.
ej. juan 500 luis 900 juan 500 juan 500 digamos un solo juan 500 y quedaria juan 500 luis 900 juan 500 necesito q haga esto el sql. gracias |
¿Te refieres a esto?
Es algo muy sencillo, como ves. |
porque eliminar 1 de 3 registros iguales, hay alguna valor diferente para cada uno?
|
Casi todas las bases de datos tienen una columna "GENERADA" que puedes utilizar para numerar las filas obtenidas, o bien, funciones "WINDOW" que hacen esta función:
Esto funcionaria en PostgreSQL (versión 8.4 y superior):
Sustituyendo ROW_NUMBER por ROWNUM, funcionaría también en ORACLE (desde la versión 8, si no recuerdo mal). (*) Cuidado, no está testeado. Saludos. |
utilizo firebird 2.0, como seria en ese caso,
osea; el busca todos los repetidos entonces el 1 de ellos es el q elimina. |
Talvez con DISTINC ... :rolleyes:
Algún redactor técnico que pueda explicar en español la anterior SQL? PD.: La anterior consulta no se puede, lo acabo de recordar :( Si usaras FB 2.1 podrías hacerlo con tablas anidadas. |
Se me ocurre algo....
Cita:
Si no se puede la consulta, entonces la solución sería concanetar los campos....
se podra? |
Sin criticar y menospreciar lo que intentas hacer , en lo personal creo que es un error de diseño de tu base de dato,;) pues creo que siempre deberia haber un campo diferente y unico en cada tupla (fila ó registro) de los registros de tu tabla, pues para eso estan los primary Key, o en tal efecto podrias añadir un campo por el cual se pueda diferenciar entre una u otra tupla.
Es como si en el club Delphi hubiera dos o mas Usuarios de Nick "ingabraham" y yo le dijera por ejemplo a Roman: "Oye Roman quiero que me elimines al usuario de nick ingabraham.." pero entonces él me va responder: "¿Pero cual de todos?" Entonces quedamos en duda o si este o aquel por que no existe ninguna diferencia entre todos.;) ¿Que hacemos ahora?..pues esto significa que no se tomo en cuenta esa situacion al momento de diseñar la Base de dato. Es por eso que en club no vas a encontrar dos miembros con el mismo Nick, siempre debe haber algo que haga la diferencia. Ahora quisas podrias solucionar (Como te dije anteriormente) agregando un campo a tu tabla, que podria ser por ejemplo una fecha que indique la hora de insercion del registro, puede ser tambien un campo numerico secuencial que indique la secuencia o lugar que le toco a ese registro, o simplemente agregar campo primary key. De esa forma le podras indicar al servidor que registro especificamente debes eliminar, haciendo mas practica y mas veloz tu consulta SQL. Espero no haberte liado mas...:D;) Saludos...:) |
si, ya lo habia hecho, me toco agregar un campo de mas.
pero existen tablas donde hay estas duplicidades como n:n hay q sacar una tercera para evitar redundancias |
Cita:
Saludos...:) |
La franja horaria es GMT +2. Ahora son las 06:29:42. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi