| From: | Jaime Casanova <systemguards(at)gmail(dot)com> | 
|---|---|
| To: | Nicolás Domínguez Florit <ndomin(at)rec(dot)unicen(dot)edu(dot)ar> | 
| Cc: | pgsql-es-ayuda(at)postgresql(dot)org | 
| Subject: | Re: Select * from tabla --> a String... | 
| Date: | 2005-12-07 19:58:41 | 
| Message-ID: | c2d9e70e0512071158v77a0f68egec7afbc361c26119@mail.gmail.com | 
| Views: | Whole Thread | Raw Message | Download mbox | Resend email | 
| Thread: | |
| Lists: | pgsql-es-ayuda | 
On 12/6/05, Nicolás Domínguez Florit <ndomin(at)rec(dot)unicen(dot)edu(dot)ar> wrote:
> Va un poco codigo un poco pseudo, lo que esta en negrita es lo que me
> interesaria hacer (lo otro, el contexto)
>
>
> CREATE OR REPLACE FUNCTION migracion(varchar, varchar, varchar, varchar,
> char) RETURNS int4 AS '
> DECLARE
>   Tabla ALIAS FOR $1;
>   Campo ALIAS FOR $2;
>   TablaPadre ALIAS FOR $3;
>   CampoPadre ALIAS FOR $4;
>   PermiteNulo ALIAS FOR $5;
> BEGIN
>   --StringWhere  = xxxxx
>   --StringIsNull = yyyyyy
>   EXECUTE ''CREATE TEMP TABLE "DHTEMP" AS (SELECT '' || quote_ident(Tabla)
> || ''.* FROM '' ||
>           quote_ident(TablaPadre) || '', '' || quote_ident(Tabla) || ''
> WHERE '' || StringWhere || '');'';
>   -- en DHTEMP tengo los registros que deben ir. Los depurados
>   -- en Tabla me quedaron todos.
>   -- Lo que necesitaria es una diferencia entre DHTEMP y Tabla y a esa
> diferencia mandarla a la tabla log_borrados
>   -- algo asi como...
>   -- insert into log_borrados SELECT row(tabla.*) FROM tabla WHERE este en
> tabla y no en dhtemp
>   -- El problema me surge cuando lo quiero hacer generico y no se como hacer
> el matching en el where
>
>   EXECUTE ''DELETE FROM '' || quote_ident(Tabla) || '';'';
>   EXECUTE ''INSERT INTO '' || quote_ident(Tabla) || '' SELECT * FROM '' ||
> ''"DHTEMP";'';
>   EXECUTE ''DROP TABLE "DHTEMP";'';
>   RETURN 1;
> END;
> '  LANGUAGE 'plpgsql' VOLATILE;
> COMMENT ON FUNCTION migracion(varchar, varchar, varchar, varchar, char)
>  IS 'hace algo';
>
>
> Gracias.
>
> Nicolas.
>
Porque mejor no haces un trigger on delete?
--
Atentamente,
Jaime Casanova
(DBA: DataBase Aniquilator ;)
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Nicolás Domínguez Florit | 2005-12-07 20:18:03 | Re: Select * from tabla --> a String... | 
| Previous Message | Nicolás Domínguez Florit | 2005-12-07 19:54:46 | Re: Select * from tabla --> a String... |