FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
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?
Es correcto, o fallo en algo. Es que lo estoy haciendo desde EMS SQL Manager 2005 for InterBase & Firebird y me da error. Saludos. |
#3
|
|||
|
|||
Gracias, mañana probaremos a ver que tal.
|
#4
|
||||
|
||||
Cita:
__________________
Lecciones de mi Madre. Tema: modificación del comportamiento, "Pará de actuar como tu padre!" http://www.purodelphi.com/ http://www.nosolodelphi.com/ |
#5
|
|||
|
|||
mmm por que va a quedar repetido?
|
#6
|
||||
|
||||
Bueno, fraccionemos el ejercicio un poco haciendo una especie de "prueba de escritorio"... Por un lado tenemos
Esa parte de la consulta esta esperando un valor, que puede ser cualquiera, en nuestro caso es...
- 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)...
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. |
#7
|
||||
|
||||
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 |
#8
|
||||
|
||||
Ahhh, Claro¡¡¡ , ¿Como es que no lo habia visto asi? , lo que hace el update es ir "recorriendo" los registros y asignandoles el valor correspondiente, si ponemos un where "recorrera" solo los que esten dentro de la condición, en este caso como no hemos puesto un where los recorrera todos, asignandoles el valor de la subconsulta, que basandome en el ejemplo anterior no siempre tendremos como resultado 'Jhonny', ya que dicha subconsulta tiene su propia condición basada en los datos de la tabla ventas_new (Que es la que queremos actualizar) y traera un valor diferente dependiendo del registro de donde este "ubicado" el cursor al momento de actualizar... Caramba¡¡¡ que descachada me pegue , ahora si que comprendo este asunto con una mejor logica .
__________________
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:57:04. |
#9
|
|||
|
|||
Gracias maeyanes, lo he probado y me va de puta madre me has ahorrado un monton de tiempo. Cuando vengas por Málaga tienes barra libre pagada.
Saludos |
#10
|
||||
|
||||
Aún asi, creo que en FireBird esta haciendo falta algo (Si es que ya no existe y no me he dado cuenta), ¿Que sucederia si queremos actualizar varios campos de esta manera?, abria que hacer lo siguiente:
Esto debe ser muy lento... deberia existir una manera de hacerlo diferente... como creo que lo he visto en otros motores, algo como:
No se, quizá es una idea loca y hasta sin sentido, como quizá sea algo que he observado en algún otro lugar, pero creo que deberia existir.
__________________
Lecciones de mi Madre. Tema: modificación del comportamiento, "Pará de actuar como tu padre!" http://www.purodelphi.com/ http://www.nosolodelphi.com/ |
#11
|
|||
|
|||
Hola...
Yo siempre he usado el update de esa forma y siempre me ha resultado bien... por eso me extrañó que me dijeras que se repetiría lo mismo en todos los registros... Y si, en algunas ocasiones puede ser lento... sobre todo si son tablas muy grandes... Saludos... |
#12
|
||||
|
||||
Cita:
de esta forma solo haríamos una sóla consulta anidada. |
#13
|
||||
|
||||
Bueno, como dicen por ahí, "La practica hace al maestro"
__________________
Lecciones de mi Madre. Tema: modificación del comportamiento, "Pará de actuar como tu padre!" http://www.purodelphi.com/ http://www.nosolodelphi.com/ |
#14
|
||||
|
||||
Cita:
__________________
Lecciones de mi Madre. Tema: modificación del comportamiento, "Pará de actuar como tu padre!" http://www.purodelphi.com/ http://www.nosolodelphi.com/ |
#15
|
|||
|
|||
Hola!
Es posible esa sintaxis en Firebird? Por que hasta ahora no he visto ningún documento donde indique que si es posible, y haciendo unas pruebas con Firebird 2, obtuve un error... Saludos... |
#16
|
|||
|
|||
Cita:
Saludos... |
#17
|
||||
|
||||
Cita:
Ese es el punto... no se puede hacer, pero sería interesante que se pudiera . En cuanto a lo de la sintaxis que nos muestras sobre el insert, pues te cuento que acabo de hacer una prueba con FB 2.0.3 como la que indicas, pero desafortunadamente con la primero consulta me muestra el siguiente error:
y con la segunda, lo siguiente:
Sinceramente, recuerdo vagamente que alguna vez hice algo como lo que indicas, pero como ya he comentado, siempre que necesito estas cosas he usado un procedimiento almacenado por lo que ya no recuerdo si la vez que lo hice fue con FB u otro motor .
__________________
Lecciones de mi Madre. Tema: modificación del comportamiento, "Pará de actuar como tu padre!" http://www.purodelphi.com/ http://www.nosolodelphi.com/ |
#19
|
||||
|
||||
Cita:
Una solución por el estilo debe tener lo del Update con una sola subconsulta que he planteado mas arriba , pero ni la encuentro y/o ni la recuerdo .
__________________
Lecciones de mi Madre. Tema: modificación del comportamiento, "Pará de actuar como tu padre!" http://www.purodelphi.com/ http://www.nosolodelphi.com/ |
|
|
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 |
|