Re: Update from lento

From: Alvaro Herrera <alvherre(at)dcc(dot)uchile(dot)cl>
To: Josué Maldonado <josue(at)lamundial(dot)hn>
Cc: postgresql spanish <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Re: Update from lento
Date: 2004-05-21 23:41:18
Message-ID: 20040521234118.GB19793@dcc.uchile.cl
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

On Fri, May 21, 2004 at 04:51:52PM -0600, Josué Maldonado wrote:

> He utilizado el siguiente codigo para actualizar una tabla con datos de
> otra:

> UPDATE product SET
> pro_pdetalle = ss.detalle,
> pro_pdocena = ss.precioma2,
> pro_pmayorista = ss.precioma1,
> pro_prevendedor = ss.preciorev
> FROM precios ss, product f
> where precios.procode = f.pro_code

Creo que tienes un cross join irrestricto que agranda la consulta mucho
mas de lo que esperas. Prueba lo siguiente:

UPDATE product SET
pro_pdetalle = ss.detalle,
pro_pdocena = ss.precioma2,
pro_pmayorista = ss.precioma1,
pro_prevendedor = ss.preciorev
FROM precios ss
where ss.procode = product.pro_code

La forma que tienes arriba me parece que esta haciendo un join de
product, product AS f, precios AS ss, precios
(dos tablas repetidas!)

Probablemente no es lo que quieres (en otras palabras: el problema es
un "implicit from").

--
Alvaro Herrera (<alvherre[a]dcc.uchile.cl>)
Licensee shall have no right to use the Licensed Software
for productive or commercial use. (Licencia de StarOffice 6.0 beta)

In response to

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Josué Maldonado 2004-05-21 23:47:14 Re: Update from lento
Previous Message Alvaro Herrera 2004-05-21 23:34:21 Re: Re: