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

[SOLUCIONADO] Trigger que se dispare al insertar y actualizar un campo de una tabla

Estas en el tema de Trigger que se dispare al insertar y actualizar un campo de una tabla en el foro de PostgreSQL en Foros del Web. Hola a todos, esperando me puedan ayudar Necesito hacer lo siguiente: crear trigger que cuando inserte una ruta en km se guarde tambien en millas ...
  #1 (permalink)  
Antiguo 18/07/2015, 19:35
YahairaSarahi
Invitado
 
Mensajes: n/a
Puntos:
Trigger que se dispare al insertar y actualizar un campo de una tabla

Hola a todos, esperando me puedan ayudar
Necesito hacer lo siguiente: crear trigger que cuando inserte una ruta en km se guarde tambien en millas y cuando se inserte en millas se ponga tambien en km

Los campos de mi tabla es ruta, distancia_k y distancia_m

Y mis funciones y mis triggers son los siguientes
Código SQL:
Ver original
  1. CREATE OR REPLACE FUNCTION actualizar_kilometros()
  2. RETURNS TRIGGER
  3. AS $$
  4. DECLARE
  5. m NUMERIC;
  6. BEGIN
  7.     m:= 1.609344;
  8.    
  9.         NEW.distancia_k := NEW.distancia_m*m;
  10.        
  11.     RETURN NEW;
  12.     END;
  13.     $$
  14.     LANGUAGE 'plpgsql';
  15.  
  16. CREATE OR REPLACE FUNCTION actualizar_millas()
  17. RETURNS TRIGGER
  18. AS $$
  19. DECLARE
  20. k NUMERIC;
  21. BEGIN
  22.     k:= 0.621371;
  23.    
  24.         NEW.distancia_m :=NEW.distancia_k*k;
  25.        
  26.     RETURN NEW;
  27.     END;
  28.     $$
  29.     LANGUAGE 'plpgsql';
  30.  
  31.  
  32.    
  33. --DEFINICION DEL TRIGGER
  34. CREATE TRIGGER actualizar_kilometros
  35. BEFORE INSERT OR UPDATE OF distancia_m ON distancias
  36. FOR each ROW
  37. EXECUTE PROCEDURE actualizar_kilometros();
  38.  
  39.  
  40. CREATE TRIGGER actualizar_millas
  41. BEFORE INSERT OR UPDATE OF distancia_k ON distancias
  42. FOR each ROW
  43. EXECUTE PROCEDURE actualizar_millas();


El codigo anterior solamente funciona cuando actualizo, cuando inserto solamente se inserta el nombre de la ruta, pero no se inserta nada en millas ni en kilometros

Me podrian ayudar? no se que tengo mal
  #2 (permalink)  
Antiguo 20/07/2015, 11:45
 
Fecha de Ingreso: septiembre-2010
Mensajes: 494
Antigüedad: 13 años, 7 meses
Puntos: 10
Respuesta: Trigger que se dispare al insertar y actualizar un campo de una tabla

Se me ocurre que al ejecutar el trigger antes de insertar, esa inserción no se ve afectada por él.

Pero no me hagas mucho caso, que yo tengo muy poca idea

Edito: perdon, no me había dado cuenta de que el tema estaba solucionado
__________________
Mi calculadora en Qt

Etiquetas: bases-de-datos-general, campo, sql, tabla, trigger
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 18:37.