From: | Jaime Casanova <systemguards(at)gmail(dot)com> |
---|---|
To: | Samuel Concha <sconcha(at)dim(dot)cl> |
Cc: | pgsql-es-ayuda(at)postgresql(dot)org |
Subject: | Re: nombre tabla como parametro |
Date: | 2005-05-25 15:37:22 |
Message-ID: | c2d9e70e05052508372f1ed22c@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
On 5/24/05, Samuel Concha <sconcha(at)dim(dot)cl> wrote:
> Muchos saludos de Chile,
> Mi solicitud de ayuda es la siguiente, tengo una aplicacion cliente/servidor
> hecha en VB6 sobre un motor SQL server, actualmente estoy migrando al motor
> postgresql y me surgio entre otras la siguiente duda.
> Tengo una consulta/actualizacion compleja, el cual trabaja sobre tablas cuyo
> nombre cambia mes a mes, sobre SQL server lo que se hace es generar un
> procedimiento almacenado nuevo todos los meses (via codigo VB, con 'ALTER
> PROCEDURE') el cual genera dicho procedimiento con el nombre de las tablas
> del respectivo mes.
>
Por que no añadir a la estructura de la tabla un campo año y un campo
mes como parte de la clave? asi no tendrias que crear una tabla nueva
cada mes.
> El asunto es que pretendo crear una funcion (que reciba como parametro la
> fecha, parte integrante del nombre de las tablas) que genere a su vez la
> funcion antes señalada.
> Es esto posible?, como?.
> agradeceria mucho cualquier ayuda que fuera posible.
> de ante mano muchisimas gracias
>
Si insistes en esto puedes hacerlo poniendo la consulta de creacion en
una cadena de caracteres y usando el comando EXECUTE.
CREATE FUNCTION foo(date) RETURNS void AS $$
DECLARE
stmnt text;
BEGIN
stmnt = 'CREATE TABLE t_foo_' || MONTH($1) || '_' || YEAR($1) || '
(col1 int) ';
EXECUTE stmnt;
END; $$
language 'plpgsql';
PD: No te olvides de añadir a la lista en tus respuestas, reply-all
--
Atentamente,
Jaime Casanova
(DBA: DataBase Aniquilator ;)
From | Date | Subject | |
---|---|---|---|
Next Message | Alexys Lozada | 2005-05-25 15:38:46 | IPV6 o Local? |
Previous Message | Alvaro Herrera | 2005-05-25 13:47:19 | Re: cosa rara |