Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Firebird e Interbase (https://www.clubdelphi.com/foros/forumdisplay.php?f=19)
-   -   Firebird 1.5, tengo dos tablas necesito modificar un par de valores (https://www.clubdelphi.com/foros/showthread.php?t=50822)

micky mouse 28-11-2007 23:35:52

Firebird 1.5, tengo dos tablas necesito modificar un par de valores
 
holas, tal ves me puedan ayudar.
tengo dos tablas relacionadas, ya pobladas, necesito modificar el valor de una llave primaria de la primera tabla
y tambien la correspondiente llave foranea de la segunda(obiamente).
Tabla Maestra: doc_compra_vehiculo
Tabla Detalle: vehiculo_consignado_comprado
he intentado con el siguiente codigo y algunas variantes, y siempre tengo error:

Código SQL [-]
COMMIT WORK;
SET AUTODDL OFF;
SET TERM ^ ;
update vehiculo_consignado_comprado set
marcaVehiCodigo=17
where docCompraVehiCodigo=105 and provCodigo=1 and serie_vin_chasis='N7C424472' and marcaVehiCodigo=1;
update doc_compra_vehiculo set
marcaVehiCodigo=17
where docCompraVehiCodigo=105 and provCodigo=1 and serie_vin_chasis='N7C424472' and marcaVehiCodigo=1;
SET TERM ; ^
COMMIT WORK;
SET AUTODDL ON;





Es posible lo que estoy intentando hacer???

Uso Firebird 1.5

sur-se 29-11-2007 13:16:24

Hola. Si la tabla relacionada tiene especificada una clave referencial con la partícula ON DELETE CASCADE. Es suficiente con actualizar las claves primaras de la tabla origen para que la actualización se propague "en cascada" sobre las tablas relacionadas, sin tener que hacer nada más, es decir, un solo sql para actualizar la tabla primaria.

micky mouse 29-11-2007 22:24:04

gracias por responder

pero me he dado cuenta de que desafortunadamente no habia validado las particulas ON DELETE CASCADE y ON UPDATE CASCADE, y ahora que lo habilito no se produce la actualización y elinicación en modo de cascada.

:mad:, inesperado impace.

rastafarey 03-12-2007 22:22:36

Resp
 
Mi pregunta en ves de responder como saber quien es el padre o el hijo de quien si la integridad refencia esta rota creo que vas a tenr que lanzarle unas consultas a mano para ver quienes estas huerfanos y quienes esta con quien y arreglar alas cosa a mano y luego arregla la integridad refrencia.

Pero me parace raro que nunca te alla dado error cuando modificabas los datos de los del padre por que una casa es que te falta la regla de actualizacion es cascada. Perosi la integridad refencia existe no se puede violar.

Por lo que podria intuir que la bse de datos est aen perfecto estado. Solo deberia poner la as reglas de casca y listo. Por que seria de mucha casualidad que cuando modificaste la clave del padre a la cual hace referencia la tabla hija siempre hubiera un campo en la tabla con el mismo valor. es este caso tampo esto se podria ya que no se pueden crear ferencia a campo que no son unicos o calves primarias asi que no veo caul es el problema. Segun todo lo que he escrito si existi ala clave foranea la base de datos esta en perfecto estado y y como te dije anteriromente solo debes agrgar ala regla de modificacin y elimicacion(si este casoaplica en cascada).


La franja horaria es GMT +2. Ahora son las 17:00:24.

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