Re: [pgsql-es-ayuda] Particionamiento de tablas: evitar insercion en la tabla maestra

2012-01-11 Por tema Emanuel Calvo
El día 10 de enero de 2012 14:44, Sergio Sinuco
 escribió:
> 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||')';
>

Haz pensado que pasa si la tabla no existe? Se que el mio es un
concepto pesimista,
pero Murphy siempre da vueltas. Si estas 100% seguro que no puede pasar, ok.



-- 
--
              Emanuel Calvo
              Helpame.com
-
Enviado a la lista de correo pgsql-es-ayuda (pgsql-es-ayuda@postgresql.org)
Para cambiar tu suscripci�n:
http://www.postgresql.org/mailpref/pgsql-es-ayuda


Re: [pgsql-es-ayuda] Particionamiento de tablas: evitar insercion en la tabla maestra

2012-01-11 Por tema Emanuel Calvo
El día 10 de enero de 2012 15:39, Sergio Sinuco
 escribió:
> Hola Emanuel. Tenía un error de concepto.
>
> Al ejecutar el siguiente query me aparecían todas los registros:
>
> select * FROM insert_informe_15min_diario_cola_maestra;
>
> Sin embargo al ejecutar el siguiente query ya no me aparecia ningun registro 
> lo que indica que no se estaba insertando ningún registro.
>
> select * FROM only insert_informe_15min_diario_cola_maestra;

Está bien que no aparezcan registros. ONLY indica que utilice solo la tabla
detallada y no las heredadas. La maestra no debe contener datos...

Si lo has captado de antemano, genial :D

-- 
--
              Emanuel Calvo
              Helpame.com
-
Enviado a la lista de correo pgsql-es-ayuda (pgsql-es-ayuda@postgresql.org)
Para cambiar tu suscripci�n:
http://www.postgresql.org/mailpref/pgsql-es-ayuda


RE: [pgsql-es-ayuda] Particionamiento de tablas: evitar insercion en la tabla maestra

2012-01-10 Por tema Sergio Sinuco
Hola Emanuel. Tenía un error de concepto. 

Al ejecutar el siguiente query me aparecían todas los registros:

select * FROM insert_informe_15min_diario_cola_maestra;

Sin embargo al ejecutar el siguiente query ya no me aparecia ningun registro lo 
que indica que no se estaba insertando ningún registro.

select * FROM only insert_informe_15min_diario_cola_maestra;

Gracias.

Att
Sergio E.


-Mensaje original-
De: Sergio Sinuco [mailto:sergiosin...@datatraffic.com.co] 
Enviado el: martes, 10 de enero de 2012 08:44 a.m.
Para: 'Emanuel Calvo'
CC: 'pgsql-es-ayuda@postgresql.org'
Asunto: RE: [pgsql-es-ayuda] Particionamiento de tablas: evitar insercion en la 
tabla maestra

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@gmail.com] 
Enviado el: martes, 10 de enero de 2012 07:42 a.m.
Para: Sergio Sinuco
CC: pgsql-es-ayuda@postgresql.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
 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

-
Enviado a la lista de correo pgsql-es-ayuda (pgsql-es-ayuda@postgresql.org)
Para cambiar tu suscripci�n:
http://www.postgresql.org/mailpref/pgsql-es-ayuda


RE: [pgsql-es-ayuda] Particionamiento de tablas: evitar insercion en la tabla maestra

2012-01-10 Por tema Sergio Sinuco
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....@gmail.com] 
Enviado el: martes, 10 de enero de 2012 07:42 a.m.
Para: Sergio Sinuco
CC: pgsql-es-ayuda@postgresql.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
 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

-
Enviado a la lista de correo pgsql-es-ayuda (pgsql-es-ayuda@postgresql.org)
Para cambiar tu suscripci�n:
http://www.postgresql.org/mailpref/pgsql-es-ayuda


Re: [pgsql-es-ayuda] Particionamiento de tablas: evitar insercion en la tabla maestra

2012-01-10 Por tema Emanuel Calvo
El día 9 de enero de 2012 22:40, Sergio Sinuco
 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
-
Enviado a la lista de correo pgsql-es-ayuda (pgsql-es-ayuda@postgresql.org)
Para cambiar tu suscripci�n:
http://www.postgresql.org/mailpref/pgsql-es-ayuda


[pgsql-es-ayuda] Particionamiento de tablas: evitar insercion en la tabla maestra

2012-01-09 Por tema Sergio Sinuco
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

Gracias.

Sergio Sinuco.