![]() |
actualizar datos de una tabla según datos de otra.
hola a todos,
mi inconveniente es porque tengo una tabla que será actualizada (solo algunos campos), esta tomará datos de otra tabla (solo algunos campos) la sentencia SQL para las inserciones es la siguiente:
eso funciona perfectamente. pero en el caso de las actualizaciones donde la estructura de la sentencia es la siguiente:
como hago para pasar los datos de la tabla origen a la tabla destina utilizando update espero me hayan entendido... agradezco toda la ayuda que me puedan brindar... |
Algo como:
donde destino.KEY = origen.KEY significa que debes relacionar de alguna manera uno-a-uno ambas tablas. Lo malo aquí, es que requieres una subconsulta por cada campo. Algunos motores, como MySQL permiten una modificación de la sentencia INSERT que sólo inserta nuevos registros y actualiza los ya existentes. // Saludos |
su usas Oracle, en los demas no sé si se pueda, puedes hacer.
saludos. |
Hola:
Esto ultimo debe funcionar cuando menos en DB2, ademas de Orale Saludos |
actualizar
desafortunadamente estoy trabajando con access y no funciona
|
entocne sprueba la soucion de roman,
:) |
actualizar
utilicé la forma de roman pero no me dio, inicialmente supuse que esa era la forma. realmente no quería utilizar el método que utilicé
que es este
que era lo que normalmente utilizaba para copiar datos de una tabla a otra... creo que me entienden, es que no quiero utilizar ese método puesto que vuelve al sistema muy lento... |
Pero esa consulta que muestras está muy rara. No hay ninguna condición para el UPDATE, lo que significa que en cada vuelta del bucle ¡actualizas todos los registros de la tabla destino! Desde luego que va a ser muy lento.
// Saludos |
con MySQL, a la instruccion INSERT se le puede indicar que hacer si el registro ya existe (basado en los indices primarios) que puede ser actualizarlo o ignorarlo. Por otra parte usar selects anidados aunque si da el resultado incrementa la carga del servidor pues por cada registro se ejecuta un query adicional. En tablas pequeñas no se nota mucho pero en unos cuantos miles ya hay diferencia.
|
Si las tablas son MyISAM no es tan tardado. Eso sí, la tabla origen debe estar indexada sobre el campo que haga referencia a la tabla destino; de lo contrario sí será sumamente lento.
// Saludos |
actualizar
esta es la solución que di al problema.
ahí tiene las condiciones el update, ahora imagínense el comportamiento de la aplicación al realizar un ciclo de 1500 veces y hasta más, utilizando ese procedimiento... Lo que me gustaría a mí, sería encontrar la forma de no utilizar ese procedimiento y poderlo aplicar a base mdb o db para las actualizaciones masivas. si alguien me puedar dar más información le agradecería. |
La franja horaria es GMT +2. Ahora son las 09:35:50. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi