From: | "Miguel Angel" <mvillagomez(at)sayab(dot)com(dot)mx> |
---|---|
To: | "'Arturo Valenzuela'" <avalenzuelap(at)gmail(dot)com> |
Cc: | <pgsql-es-ayuda(at)postgresql(dot)org> |
Subject: | RE: Update con select |
Date: | 2006-03-06 20:57:38 |
Message-ID: | 20060306205814.569F19DC83A@postgresql.org |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
Mientras alguien te dice como se puede hacer con una busqueda te doy esta
función que te ayudará en lo que pides, solo que necesitas instalar el
lenguaje PLPGSQL.
CREATE OR REPLACE FUNCTION prueba() RETURNS INTEGER AS $$
DECLARE
a RECORD;
cont INTEGER:=0;
BEGIN
FOR a IN (SELECT * FROM tabla2 ORDER BY cod) LOOP
UPDATE tabla1 SET des=(SELECT des FROM tabla2 WHERE cod=a.cod) WHERE
cod=a.cod;
cont:=cont+1;
END LOOP;
RAISE NOTICE '% elementos actualizados.',cont;
RETURN cont;
END;
$$ LANGUAGE PLPGSQL;
SELECT prueba();
_____
De: pgsql-es-ayuda-owner(at)postgresql(dot)org
[mailto:pgsql-es-ayuda-owner(at)postgresql(dot)org] En nombre de Arturo Valenzuela
Enviado el: Lunes, 06 de Marzo de 2006 02:36 p.m.
Para: pgsql-es-ayuda(at)postgresql(dot)org
Asunto: Re: [pgsql-es-ayuda] Update con select
Bueno gracias,
pero la verdad sigue saliendo el mismo error : mas de 1 fila ha retornado
el subquery.
no pense que fuera tan complicado. por cierto la version que tengo es el 8.1
El día 6/03/06, Espartano <espartano(dot)mail(at)gmail(dot)com> escribió:
On 3/6/06, Arturo Valenzuela <avalenzuelap(at)gmail(dot)com> wrote:
>
> Gracias por responder
> Espartano , me muestra el error
>
>
> more than one row returned by a subquery used as an expression
>
>
> Lo que deseo es actualizar el campo de la tabla1 con el otro campo de la
> tabla2 , donde la relacion es de 1 a 1, osea que se actualize toda la
> tabla1,
>
> algo asi por ejemplo,
> tabla1 tabla2
> cod des cod des
> ----- ------------------ -----
> -----------------------
> 01 01
> a
> 02 02
> b
> 03 03
> c
>
> donde al final tabla1 quedaria
>
> cod des
> ----- ----------------------
> 01 a
> 02 b
> 03 c
>
update tabla1 set des = (select tabla2.des from tabla2,tabla1 where
tabla1.cod = tabla2.cod );
esi te debaria de funcionar :)
From | Date | Subject | |
---|---|---|---|
Next Message | Juan Martínez | 2006-03-06 21:06:54 | Re: definicion de limite campo varchar |
Previous Message | Arturo Valenzuela | 2006-03-06 20:35:36 | Re: Update con select |