From: | "Sergio Sinuco" <sergiosinuco(at)datatraffic(dot)com(dot)co> |
---|---|
To: | "'Emanuel Calvo'" <postgres(dot)arg(at)gmail(dot)com> |
Cc: | <pgsql-es-ayuda(at)postgresql(dot)org> |
Subject: | RE: Particionamiento de tablas: evitar insercion en la tabla maestra |
Date: | 2012-01-10 13:44:20 |
Message-ID: | 001201cccf9d$f59f88b0$e0de9a10$@com.co |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
Gracias Emanuel por responder. Existe una tabla maestra llamada " insert_informe_15min_diario_cola_maestra" y unas tablas hijas "informes.informe_15min_diario_cola_X_Y" donde X es el numero del mes y Y es el año. El código del trigger es el siguiente:
CREATE TRIGGER insert_informe_15min_diario_cola
BEFORE INSERT
ON informes.informe_15min_diario_cola_maestra
FOR EACH ROW
EXECUTE PROCEDURE informes.informe_15min_diario_cola();
CREATE OR REPLACE FUNCTION informes.informe_15min_diario_cola()
RETURNS trigger AS
$BODY$
DECLARE
mesvar integer;
anovar integer;
comandovar character varying;
BEGIN
mesvar = EXTRACT(MONTH FROM NEW.fecha);
anovar = EXTRACT(YEAR FROM NEW.fecha);
comandovar := 'INSERT INTO informes.informe_15min_diario_cola_'||mesvar||'_'||anovar||'(fecha, dia_semana, hora, hora_inicio, hora_fin, num, max, min, total)
VALUES ('||quote_literal(NEW.fecha)||', '||NEW.dia_semana||', '||NEW.hora||', '||quote_literal(NEW.hora_inicio)||', '||quote_literal(NEW.hora_fin)||', '||NEW.num||', '||NEW.max||', '||NEW.min||', '||NEW.total||')';
EXECUTE comandovar;
RETURN NULL;
END;
$BODY$
LANGUAGE plpgsql VOLATILE
COST 100;
Gracias.
Att
Sergio E.
-----Mensaje original-----
De: Emanuel Calvo [mailto:postgres(dot)arg(at)gmail(dot)com]
Enviado el: martes, 10 de enero de 2012 07:42 a.m.
Para: Sergio Sinuco
CC: pgsql-es-ayuda(at)postgresql(dot)org
Asunto: Re: [pgsql-es-ayuda] Particionamiento de tablas: evitar insercion en la tabla maestra
El día 9 de enero de 2012 22:40, Sergio Sinuco
<sergiosinuco(at)datatraffic(dot)com(dot)co> escribió:
> Hola a todos. Estoy tratando de partir una tabla usando un trigger para
> distribuir las inserciones desde la tabla maestra a las tablas hijas. Sin
> embargo a pesar de que el trigger es "ON BEFORE INSERT" y retorna NULL, el
> registro se inserta en la tabla maestra y en la tabla hija. Que podra estar
> fallando?. Estoy usando Postgresql 8.4
>
Pega el código del disparador.
--
--
Emanuel Calvo
Helpame.com
From | Date | Subject | |
---|---|---|---|
Next Message | Víctor بيكتور Aguayo | 2012-01-10 14:03:02 | Re: Intellesense para pgAdmin |
Previous Message | Alejandro Carrillo | 2012-01-10 13:37:27 | Re: Intellesense para pgAdmin |