copia de registrors de una tabla a otra cuando las convinacion de claves existe

19/04/2005 - 16:36 por .·:m·a·r·l·a:·. | Informe spam
Hola a todos:

mi pregunta es sobre como funciona y como se puede modificar cuando la copia
de registros de una tabla a otra ocurre que en la tabla de destino se
dispone a copiar un registro con los mismos valores en los campos clave

el escenario:

tabla permanente con datos validos, y tabla de igual formato donde nuevos
datos son insertados, una vez validados estos se mueven a la tabla
permanente, dichos datos incluyen nuevos registros y correcciones a
registros anteriores

he de tratar ambos casos independientemente ??

gracias por adelantado

Preguntas similare

Leer las respuestas

#1 qwalgrande
19/04/2005 - 16:58 | Informe spam
Hola.

Por lo que te he creído entender, a tu tabla de destino debes enviar
"inserts" y "updates". Son dos procesos, eso es seguro, o bien primero
borras en destino los registros a actualizar y luego insertas los nuevos y
los modificados de una tacada o bien envías por un lado los registros nuevos
y por otro una sentencia de update para las correcciones.

Supongo que tendrás algún campo que te permita saber qué registros han sido
modificados (un campo de status o una fecha de última modificación). Depende
mucho del caso concreto, yo probaría ambos métodos ([borrado + insert] y
[insert + update]) y me quedaría con el que me diera mejor rendimiento.

qwalgrande


".·:m·a·r·l·a:·." wrote in message
news:%
Hola a todos:

mi pregunta es sobre como funciona y como se puede modificar cuando la
copia
de registros de una tabla a otra ocurre que en la tabla de destino se
dispone a copiar un registro con los mismos valores en los campos clave

el escenario:

tabla permanente con datos validos, y tabla de igual formato donde nuevos
datos son insertados, una vez validados estos se mueven a la tabla
permanente, dichos datos incluyen nuevos registros y correcciones a
registros anteriores

he de tratar ambos casos independientemente ??

gracias por adelantado


Respuesta Responder a este mensaje
#2 qwalgrande
24/04/2005 - 22:31 | Informe spam
Hola.

Si lanzas una inserción y la clave primaria ya se encuentra en la tabla, la
base de datos te devolverá un de clave duplicada, error que, por lo que
comentas, será controlado por tu aplicación, que lanzará un update.

Sin embargo, lo que yo haría sería no realizar la inserción y esperar a que
falle, si no que haría una cosa tal que así:

if exists (select clave from tabla where clave = [parametro])
update set valor = [nuevo valor] from tabla where clave = [parametro]
else
insert tabla (clave, valor) values ([parametro], [nuevo valor])



qwalgrande


".·:m·a·r·l·a:·." escribió en el mensaje
news:%
mas bien me refiero a que si hago insert de registros donde la combinacion
de claves ya existe, si estos se sobreescribirian o permanecerian los
originales

el control de errores y demas se hace en la aplicacion que maneja los
datos,
asi, si algun registro necesita entrar pero ya existe esa conbinacion de
claves, este se deveria actualizar/sobreescribir

tengo que manejar por separado entonces si es un nuevo registro o una
actualizacion, o insertando me sobreescribiria en caso de que ya exista ??


"qwalgrande" wrote in message
news:
Hola.

Por lo que te he creído entender, a tu tabla de destino debes enviar
"inserts" y "updates". Son dos procesos, eso es seguro, o bien primero
borras en destino los registros a actualizar y luego insertas los nuevos
y
los modificados de una tacada o bien envías por un lado los registros


nuevos
y por otro una sentencia de update para las correcciones.

Supongo que tendrás algún campo que te permita saber qué registros han


sido
modificados (un campo de status o una fecha de última modificación).


Depende
mucho del caso concreto, yo probaría ambos métodos ([borrado + insert] y
[insert + update]) y me quedaría con el que me diera mejor rendimiento.

qwalgrande


".·:m·a·r·l·a:·." wrote in message
news:%
> Hola a todos:
>
> mi pregunta es sobre como funciona y como se puede modificar cuando la
> copia
> de registros de una tabla a otra ocurre que en la tabla de destino se
> dispone a copiar un registro con los mismos valores en los campos clave
>
> el escenario:
>
> tabla permanente con datos validos, y tabla de igual formato donde


nuevos
> datos son insertados, una vez validados estos se mueven a la tabla
> permanente, dichos datos incluyen nuevos registros y correcciones a
> registros anteriores
>
> he de tratar ambos casos independientemente ??
>
> gracias por adelantado
>
>






Respuesta Responder a este mensaje
#3 .·:m·a·r·l·a:·.
25/04/2005 - 09:25 | Informe spam
mas bien me refiero a que si hago insert de registros donde la combinacion
de claves ya existe, si estos se sobreescribirian o permanecerian los
originales

el control de errores y demas se hace en la aplicacion que maneja los datos,
asi, si algun registro necesita entrar pero ya existe esa conbinacion de
claves, este se deveria actualizar/sobreescribir

tengo que manejar por separado entonces si es un nuevo registro o una
actualizacion, o insertando me sobreescribiria en caso de que ya exista ??


"qwalgrande" wrote in message
news:
Hola.

Por lo que te he creído entender, a tu tabla de destino debes enviar
"inserts" y "updates". Son dos procesos, eso es seguro, o bien primero
borras en destino los registros a actualizar y luego insertas los nuevos y
los modificados de una tacada o bien envías por un lado los registros


nuevos
y por otro una sentencia de update para las correcciones.

Supongo que tendrás algún campo que te permita saber qué registros han


sido
modificados (un campo de status o una fecha de última modificación).


Depende
mucho del caso concreto, yo probaría ambos métodos ([borrado + insert] y
[insert + update]) y me quedaría con el que me diera mejor rendimiento.

qwalgrande


".·:m·a·r·l·a:·." wrote in message
news:%
> Hola a todos:
>
> mi pregunta es sobre como funciona y como se puede modificar cuando la
> copia
> de registros de una tabla a otra ocurre que en la tabla de destino se
> dispone a copiar un registro con los mismos valores en los campos clave
>
> el escenario:
>
> tabla permanente con datos validos, y tabla de igual formato donde


nuevos
> datos son insertados, una vez validados estos se mueven a la tabla
> permanente, dichos datos incluyen nuevos registros y correcciones a
> registros anteriores
>
> he de tratar ambos casos independientemente ??
>
> gracias por adelantado
>
>


Respuesta Responder a este mensaje
#4 .·:m·a·r·l·a:·.
27/04/2005 - 12:23 | Informe spam
muchas gracias por el consejo, implementaremos algo asi


"qwalgrande" wrote in message
news:
Hola.

Si lanzas una inserción y la clave primaria ya se encuentra en la tabla,


la
base de datos te devolverá un de clave duplicada, error que, por lo que
comentas, será controlado por tu aplicación, que lanzará un update.

Sin embargo, lo que yo haría sería no realizar la inserción y esperar a


que
falle, si no que haría una cosa tal que así:

if exists (select clave from tabla where clave = [parametro])
update set valor = [nuevo valor] from tabla where clave = [parametro]
else
insert tabla (clave, valor) values ([parametro], [nuevo valor])



qwalgrande


".·:m·a·r·l·a:·." escribió en el mensaje
news:%
> mas bien me refiero a que si hago insert de registros donde la


combinacion
> de claves ya existe, si estos se sobreescribirian o permanecerian los
> originales
>
> el control de errores y demas se hace en la aplicacion que maneja los
> datos,
> asi, si algun registro necesita entrar pero ya existe esa conbinacion de
> claves, este se deveria actualizar/sobreescribir
>
> tengo que manejar por separado entonces si es un nuevo registro o una
> actualizacion, o insertando me sobreescribiria en caso de que ya exista


??
>
>
> "qwalgrande" wrote in message
> news:
>> Hola.
>>
>> Por lo que te he creído entender, a tu tabla de destino debes enviar
>> "inserts" y "updates". Son dos procesos, eso es seguro, o bien primero
>> borras en destino los registros a actualizar y luego insertas los


nuevos
>> y
>> los modificados de una tacada o bien envías por un lado los registros
> nuevos
>> y por otro una sentencia de update para las correcciones.
>>
>> Supongo que tendrás algún campo que te permita saber qué registros han
> sido
>> modificados (un campo de status o una fecha de última modificación).
> Depende
>> mucho del caso concreto, yo probaría ambos métodos ([borrado + insert]


y
>> [insert + update]) y me quedaría con el que me diera mejor rendimiento.
>>
>> qwalgrande
>>
>>
>> ".·:m·a·r·l·a:·." wrote in message
>> news:%
>> > Hola a todos:
>> >
>> > mi pregunta es sobre como funciona y como se puede modificar cuando


la
>> > copia
>> > de registros de una tabla a otra ocurre que en la tabla de destino se
>> > dispone a copiar un registro con los mismos valores en los campos


clave
>> >
>> > el escenario:
>> >
>> > tabla permanente con datos validos, y tabla de igual formato donde
> nuevos
>> > datos son insertados, una vez validados estos se mueven a la tabla
>> > permanente, dichos datos incluyen nuevos registros y correcciones a
>> > registros anteriores
>> >
>> > he de tratar ambos casos independientemente ??
>> >
>> > gracias por adelantado
>> >
>> >
>>
>>
>
>


email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida