Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Oracle »

Restar campos mediante un trigger

Estas en el tema de Restar campos mediante un trigger en el foro de Oracle en Foros del Web. Hola, estoy empezando con oracle y queria realizar un trigger, bueno supongo que se debera hacer con un trigger, que hiciese lo siguiente: Tengo una ...
  #1 (permalink)  
Antiguo 30/01/2009, 11:53
 
Fecha de Ingreso: enero-2009
Mensajes: 30
Antigüedad: 15 años, 9 meses
Puntos: 0
Restar campos mediante un trigger

Hola, estoy empezando con oracle y queria realizar un trigger, bueno supongo que se debera hacer con un trigger, que hiciese lo siguiente:
Tengo una tabla con los datos de remolques, entre ellos el peso.
Otra tabla con el grano que recoge cada remolque.
Entonces queria restar el peso total del remolque cuando esta lleno, del peso cuando esta bacio, para asi obtener el peso del grano e introducirlo en la segunda tabla.

No se si me he explicado muy bien pero bueno...

Gracias
  #2 (permalink)  
Antiguo 31/01/2009, 05:39
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: Restar campos mediante un trigger

Eso se resuelve habitualmente en la aplicación. No en los triggers.
Si estás ingresando el peso de las cargas en una tabla secundaria, y para ello consultas la tabla primaria donde están los vehículos. ¿Por qué no tomas el valor del peso del camión al mismo tiempo que los el resto de los datos, y haces la resta en la aplciación?
De todos modos es donde estás manejando los datos de la ejecución de la carga. ¿O no?
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #3 (permalink)  
Antiguo 31/01/2009, 07:04
 
Fecha de Ingreso: enero-2009
Mensajes: 30
Antigüedad: 15 años, 9 meses
Puntos: 0
Respuesta: Restar campos mediante un trigger

Es que los datos del vehiculo estan metidos previamente en la tabla vehiculos, entonces en la aplicacion solo se debe meter la matricula del vehiculo, y el peso que tiene cargado. Entonces yo quiero que en vez de introducirse el peso total en la tabla, se inserte solo la cantidad de grano que lleva.
Gracias.
  #4 (permalink)  
Antiguo 31/01/2009, 15:24
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: Restar campos mediante un trigger

Si. Los datos están previamente metidos en la tabla vehículos, pero de todos modos, para poder hacer un INSERT debiste haber recogido los datos del remolque primero, antes de poder enviar el dato a actualizar. ¿O no?
Es a eso a lo que me refiero: Si tuviste que levantar el ID del remolque para poder enviar los datos de la carga a la tabla de CARGAS, ¿por qué no levantas el tonelaje del vehículo y haces la resta ANTES de enviar el dato a la tabla de cargas? De esa forma el trigger es innecesario.
El cualquier caso, el trigger, si aún así lo quieres hacer, tiene forzosamente que hacer esa misma lectura para poder hacer la resta. Sino, ¿de dónde sacaría el valor para hacer la diferencia?
Esto significa que el trigger tendrá que leer el campo peso de la tabla "remolque" antes de hacer la resta de todos modos. Y esto será así, porque ningún DBMS te aceptará (que yo sepa) que envíes en un INSERT o en un UPDATE campos que no existen en la tabla destino.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 06:22.