From: | Lazaro Rubén García Martinez <lgarciam(at)vnz(dot)uci(dot)cu> |
---|---|
To: | Alvaro Herrera <alvherre(at)alvh(dot)no-ip(dot)org> |
Cc: | Miguel Angel <angelmarqui(at)gmail(dot)com>, Ayuda <pgsql-es-ayuda(at)postgresql(dot)org> |
Subject: | RE: Como pasar los datos de un campo de x tabla . |
Date: | 2012-02-03 02:13:20 |
Message-ID: | 294D3D02D5E18D42827B2ECFEADEB688231F7D7DD0@mx-interno.vnz.uci.cu |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
Alvaro muchas gracias por tu anotación, ya estuve viendo la otra variante.
Saludos.
-----Mensaje original-----
De: Alvaro Herrera [mailto:alvherre(at)alvh(dot)no-ip(dot)org]
Enviado el: jueves, 02 de febrero de 2012 21:11
Para: Lazaro Rubén García Martinez
CC: Miguel Angel; Ayuda
Asunto: RE: [pgsql-es-ayuda] Como pasar los datos de un campo de x tabla .
Excerpts from Lazaro Rubén García Martinez's message of jue feb 02 20:16:38 -0300 2012:
> Y ejecuta el siguiente script si usas PostgreSQL 9, de lo contrario crea una función y dentro pones ese contenido:
>
> DO LANGUAGE 'plpgsql'
> $$
> DECLARE
> iterator INTEGER;
> valor_ VARCHAR;
> BEGIN
> FOR iterator, valor_ IN SELECT table1.pk_tabla1, table1.valor FROM table1
> Loop
> UPDATE table2
> SET
> valor = valor_
> WHERE pk_tabla1 = iterator;
> END Loop;
> END
> $$
Es mucho más simple:
update table2
set valor = table1.valor
from table2 where pk_tabla2 = table1.pk_table1;
O algo similar. No necesitas un FOR LOOP.
Cada vez que usas un cursor cuando podrías hacer un join, las
autoridades encarcelan un gatito de por vida.
--
Álvaro Herrera <alvherre(at)alvh(dot)no-ip(dot)org>
From | Date | Subject | |
---|---|---|---|
Next Message | Kernel | 2012-02-03 07:06:38 | Re: Error con la funcion crosstab |
Previous Message | Alvaro Herrera | 2012-02-03 01:41:22 | RE: Como pasar los datos de un campo de x tabla . |