From: | Nicolás Domínguez Florit <ndomin(at)rec(dot)unicen(dot)edu(dot)ar> |
---|---|
To: | "Jaime Casanova" <systemguards(at)gmail(dot)com> |
Cc: | <pgsql-es-ayuda(at)postgresql(dot)org> |
Subject: | Re: Select * from tabla --> a String... |
Date: | 2005-12-07 20:18:03 |
Message-ID: | 01be01c5fb6b$5422b3c0$ea84a8c0@Nico |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
no me parece del todo viable (por ahi lo tendria que trabajar mas dentro de
mi cabeza), la forma que busque ya la tengo casi listo, me faltaria ver como
guardar el row(tabla.*) en un varchar o text.
Lo del delete puede andar, pero no se si es tan optimo. Te repito, lo
tendria que pensar desde cero con el trigger
quien da mas? se puede hacer lo del row() a texto?
----- Original Message -----
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>
Sent: Wednesday, December 07, 2005 4:58 PM
Subject: Re: [pgsql-es-ayuda] Select * from tabla --> a String...
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 ;)
---------------------------(fin del mensaje)---------------------------
TIP 4: No hagas 'kill -9' a postmaster
--
No virus found in this incoming message.
Checked by AVG Free Edition.
Version: 7.1.371 / Virus Database: 267.13.12/193 - Release Date: 06/12/2005
From | Date | Subject | |
---|---|---|---|
Next Message | Raul Caso | 2005-12-07 21:12:59 | Re: Problema al conectarme a traves del php con Postgres. |
Previous Message | Jaime Casanova | 2005-12-07 19:58:41 | Re: Select * from tabla --> a String... |