RE: Particionamiento de tablas: evitar insercion en la tabla maestra

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

In response to

Responses

Browse pgsql-es-ayuda by date

  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