Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > Firebird e Interbase
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 27-11-2007
Rockin Rockin is offline
Miembro
 
Registrado: may 2003
Ubicación: Málaga
Posts: 264
Poder: 22
Rockin Va por buen camino
Actualizar tabla con datos de otra tabla mediante UPDATE

Es posible realizar en firebird la actualizacion de una tabla con los datos de otra, estan en la misma BD, seria correcto asi?
Código SQL [-]
uptade ventas_new set nombre= ventas_old.nombre from ventas_old where id = ventas_old.id

Es correcto, o fallo en algo.
Es que lo estoy haciendo desde EMS SQL Manager 2005 for InterBase & Firebird y me da error.

Saludos.
Responder Con Cita
  #2  
Antiguo 27-11-2007
[maeyanes] maeyanes is offline
Capo de los Capos
 
Registrado: may 2003
Ubicación: Campeche, México
Posts: 2.732
Poder: 23
maeyanes Va por buen camino
La consulta correcta sería:

Código SQL [-]
update ventas_new a set a.nombre = (select b.nombre from ventas_old b where b.id = a.id)


Saludos...
Responder Con Cita
  #3  
Antiguo 27-11-2007
Rockin Rockin is offline
Miembro
 
Registrado: may 2003
Ubicación: Málaga
Posts: 264
Poder: 22
Rockin Va por buen camino
Gracias, mañana probaremos a ver que tal.
Responder Con Cita
  #4  
Antiguo 27-11-2007
Avatar de jhonny
jhonny jhonny is offline
Jhonny Suárez
 
Registrado: may 2003
Ubicación: Colombia
Posts: 7.058
Poder: 29
jhonny Va camino a la famajhonny Va camino a la fama
Cita:
Empezado por maeyanes Ver Mensaje
La consulta correcta sería:

Código SQL [-]
update ventas_new a set a.nombre = (select b.nombre from ventas_old b where b.id = a.id)
Me temo que de esa manera conseguiremos una consulta muy lenta y ademas el b.nombre quedara repetido en toda la tabla ventas_new, para evitar eso habra que agregar la condición adecuada fuera de la subconsulta.
__________________
Lecciones de mi Madre. Tema: modificación del comportamiento, "Pará de actuar como tu padre!"

http://www.purodelphi.com/
http://www.nosolodelphi.com/
Responder Con Cita
  #5  
Antiguo 27-11-2007
[maeyanes] maeyanes is offline
Capo de los Capos
 
Registrado: may 2003
Ubicación: Campeche, México
Posts: 2.732
Poder: 23
maeyanes Va por buen camino
mmm por que va a quedar repetido?
Responder Con Cita
  #6  
Antiguo 27-11-2007
Avatar de jhonny
jhonny jhonny is offline
Jhonny Suárez
 
Registrado: may 2003
Ubicación: Colombia
Posts: 7.058
Poder: 29
jhonny Va camino a la famajhonny Va camino a la fama
Cita:
Empezado por maeyanes Ver Mensaje
mmm por que va a quedar repetido?
Código SQL [-]
update ventas_new a set a.nombre = (select b.nombre from ventas_old b where b.id = a.id)

Bueno, fraccionemos el ejercicio un poco haciendo una especie de "prueba de escritorio"...

Por un lado tenemos

Código SQL [-]
update ventas_new a set a.nombre =

Esa parte de la consulta esta esperando un valor, que puede ser cualquiera, en nuestro caso es...

Código SQL [-]
(select b.nombre from ventas_old b where b.id = a.id)

- Ahora bien, si hacemos un ejercicio mental de quitar la subconsulta e imaginarnos que nos devuelve un valor cualquiera, por ejemplo "Jhonny", obtendriamos la siguiente consulta, (Que en ultimas es lo que haria cualquier motor, suponiendo que unicamente me devolvera un solo registro en todos los casos)...

Código SQL [-]
update ventas_new a set a.nombre = 'Jhonny'

Como podemos ver no hay una condición where donde le indique al motor cual es el registro para actualizar, de manera que los actualizara todos .
__________________
Lecciones de mi Madre. Tema: modificación del comportamiento, "Pará de actuar como tu padre!"

http://www.purodelphi.com/
http://www.nosolodelphi.com/

Última edición por jhonny fecha: 27-11-2007 a las 23:32:37.
Responder Con Cita
  #7  
Antiguo 27-11-2007
Avatar de jhonny
jhonny jhonny is offline
Jhonny Suárez
 
Registrado: may 2003
Ubicación: Colombia
Posts: 7.058
Poder: 29
jhonny Va camino a la famajhonny Va camino a la fama
Bueno maeyanes, acabo de hacer una prueba para corroborar el asunto en (FB2.1 Beta 2 - Dialecto3) y me he dado cuenta que vos tenes la razón, aunque aún no cabe dentro de mi logica, definitivamente el efecto es el que vos haz comentado .
__________________
Lecciones de mi Madre. Tema: modificación del comportamiento, "Pará de actuar como tu padre!"

http://www.purodelphi.com/
http://www.nosolodelphi.com/

Última edición por jhonny fecha: 27-11-2007 a las 23:45:48. Razón: Colocar maeyanes
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
actualizar datos de una tabla según datos de otra. GustavoCruz SQL 10 01-06-2007 23:18:44
Actualizar un campo de una tabla con datos que se encuentran en otra tabla Morphine SQL 4 15-12-2006 22:47:42
Actualizar una tabla con una consulta de otra tabla JODELSA SQL 2 14-09-2006 04:07:01
Actualizar tabla con datos de otra tabla ElDioni SQL 2 02-05-2006 16:04:04
Problema al hacer un update en una tabla con datos de otra Iseberiano SQL 3 08-06-2005 12:32:14


La franja horaria es GMT +2. Ahora son las 09:41:18.


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
Copyright 1996-2007 Club Delphi