Ver Mensaje Individual
  #1 (permalink)  
Antiguo 08/11/2011, 13:40
metalmacana
 
Fecha de Ingreso: noviembre-2011
Mensajes: 2
Antigüedad: 12 años, 5 meses
Puntos: 0
utilizar datos de un select para utilizarlos en un insert. PLPGSQL.

buenas!!!
Soy nuevo en programación plpgsql.
Estoy un disparado. La idea de este disparador es que cada vez que realice un INSERT o UPDATE en una tabla, poder copiar los datos nuevos a otra tabla.
Sé que tengo mi store procedure bien definido, y mi trigger también funciona: A continuación muestro lo que he hecho:

-----------------------------------------------------------------------------------------------------------------------------
Código:
CREATE OR REPLACE FUNCTION realizo_operacion() RETURNS TRIGGER AS $realizo_operacion$
  DECLARE
  BEGIN
    
    --aqui coloco el query
  SELECT * FROM grey WHERE grey_id = 3;
    --Esta consulta trae 1 registro con 2 columnas.
  INSERT INTO prueba(prueba_id, prueba_nombre) VALUES ('INSERTO columna 1', 'INSERTO columna 2');

    RETURN NULL;
  END;
$realizo_operacion$ LANGUAGE plpgsql;
---------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------
Código:
CREATE TRIGGER realizo_operacion AFTER INSERT OR UPDATE OR DELETE
    ON grey FOR EACH ROW 
    EXECUTE PROCEDURE realizo_operacion();
---------------------------------------------------------------------------------------------------------------------------

El ejemplo anterior es una simplificación del problema real. Este fue probado y funciona.

mi duda es la siguiente:

Cómo puedo obtener los datos de una consulta (Select) para utilizarlo en el query (Insert)???
lo que deseo es copiar los datos algunas de las columnas de la tabla donde esta el disparador a la otra. osea, copiar de una tabla a otra.

Gracias de antemano con la ayuda ofrecida.