FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
|||
|
|||
Creo que no me expliqué. Yo tengo que transferir los datos de una tabla que contiene dos tuplas erróneas ya que violan la clave primaria. Entonces tengo que insertar en la nueva tabla sólo una de esas dos tuplas. La que en uno de sus atributos, tiene un valor mayor respecto a la otra.
|
#2
|
||||
|
||||
Hola.
Cita:
Donde la columna ID representa la clave primaria y ATRIBUTO la columna de mayor valor a seleccionar. Saludos
__________________
Daniel Didriksen Guía de estilo - Uso de las etiquetas - La otra guía de estilo .... |
#3
|
|||
|
|||
Hola, gracias!!
T1.ID qué significa? y T2? Solo hay dos tablas. La de origen, y la tabla donde quiero almacenar las cosas.. |
#4
|
|||
|
|||
Tengo que hacer algo asi como agrupar las tuplas por el atributo por el que quiero insertar en función de él. He pensado en agruparlos por orden según esa variable, y luego insertarlas tuplas solo si antes no había metida una tupla con la misma clave primaria. No sé si esto es lo que me pones en el código o no pero me he hecho un lío porque me has puesto como 3 tablas si no he visto bien, y solo influyen 2 tablas.. De todas formas no sabría hacer en lenguaje SQL lo que he expuesto
|
#5
|
||||
|
||||
Hola.
Cita:
Algunos gestores podrían requerir la sintáxis completa:
Saludos
__________________
Daniel Didriksen Guía de estilo - Uso de las etiquetas - La otra guía de estilo .... |
#6
|
|||
|
|||
Pero me has puesto la tabla ORIGEN T1, ORIGEN T2 Y DESTINO
|
#7
|
||||
|
||||
Hola.
DESTINO es la tabla donde se hará la inserción resultado de las selecciones. T1 y T2 son ambos alias de la tabla origen pero pertenecen a distintas selecciones. Te convendría profundizar más sobre SQL, algunos enlaces: Saludos
__________________
Daniel Didriksen Guía de estilo - Uso de las etiquetas - La otra guía de estilo .... |
#8
|
||||
|
||||
Tienes que realizar un análisis de las tuplas antes de intentar insertarlas. Es decir, tienes que verificar si hay tuplas con misma clave primaria y dado el caso definir cual será la que deberás insertar. Una vez analizadas y procesadas entonces sí mandárselas al motor de BD. Si lo haces directamente en la BD se daría el siguiente supuesto:
Código:
Se inserta tupla 1 de tabla A en tabla B Se toma siguiente tupla de tabla A clave de tupla 2 de tabla A ya existe en tabla B? [NO] insertar tupla 2 de tabla A en tabla B [SI] x propiedad de tupla 2 de tabla A es mayor que la que tiene la misma clave en tabla B ? [NO] No insertar nada y saltar a siguiente tupla de tabla A [SI] Eliminar tupla existente de tabla B e insertar la nueva tupla en tabla B Continuar con siguiente tupla de tabla A y repetir ciclo
__________________
AKA "El animalito" ||Cordobés a mucha honra|| |
#9
|
||||
|
||||
Cita:
A la hora de insertar, se insertará primero, el que tiene el atributo mayor (que es lo que necesitas). El resto de inserciones fallarán por clave duplicada.
__________________
Germán Estévez => Web/Blog Guía de estilo, Guía alternativa Utiliza TAG's en tus mensajes. Contactar con el Clubdelphi P.D: Más tiempo dedicado a la pregunta=Mejores respuestas. |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Clave primaria a 0 | aromigaret | Conexión con bases de datos | 15 | 05-02-2016 23:55:03 |
duda clave primaria en Paradox | mak8888 | Tablas planas | 1 | 26-06-2005 21:48:57 |
Ayuda Con Clave Primaria | pablo2244 | MySQL | 4 | 30-05-2005 21:49:01 |
Cambiar clave primaria | pinoxito | Firebird e Interbase | 7 | 13-01-2004 21:51:26 |
cambiar una clave primaria | User_Baja_2 | SQL | 3 | 06-10-2003 18:03:38 |
|