Ver Mensaje Individual
  #1 (permalink)  
Antiguo 09/04/2010, 10:35
eduardkorn
 
Fecha de Ingreso: abril-2007
Mensajes: 32
Antigüedad: 17 años
Puntos: 0
Problema Funcion Trigger

Hola a todos.

Estoy creando una función que se va a utilizar como trigger. El asuntoe s que la estoy creando por que la necesito en varias tablas y asi no tener que crear varias funciones sino que se ejecute lo mismo usando una sola funcion.

El problema es que no logro concatenar el nombre de una tabla que necesito en un INSERT... adjunto el codigo para explicarme mejor.

CREATE OR REPLACE FUNCTION particion.insertarTablaHijo() RETURNS trigger AS $$
DECLARE
consulta text;
mes varchar(2);
tabla varchar;
BEGIN
-- si la tabla se llama diario agrego el mes
IF TG_TABLE_NAME = 'diario' THEN
mes := '_' || NEW.mes;
ELSE
mes := '';
END IF;
--armo el nombre de la tabla
tabla := TG_TABLE_NAME || '_' || NEW.anio || mes;
--Y AQUI ESTA EL BENDITO PROBLEMA
EXECUTE 'INSERT INTO ' || tabla || VALUES(NEW.*);
RETURN NULL;
END
$$ LANGUAGE plpgsql;

En la linea donde dice EXECUTE 'INSERT INTO ' || tabla || VALUES(NEW.*);... no se como carajos concatenar esa variable 'tabla' para que me la tome en la consulta.

Si tienen alguna die de como hacerlo, les agradezco mucho. La estructura de las tablas como tal no importa, lo importante es poder armar el query.

Gracias.