Re: No entiendo que pasa???

From: Alvaro Herrera <alvherre(at)commandprompt(dot)com>
To: borix rios <bxrios(at)gmail(dot)com>
Cc: pgsql-es-ayuda(at)postgresql(dot)org
Subject: Re: No entiendo que pasa???
Date: 2007-08-13 20:24:02
Message-ID: 20070813202402.GJ17177@alvh.no-ip.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

borix rios escribió:

> if nombre
> update correlativos
> set valor=valor + 1
> where nombre=nombre;
>
> resultado:= (select valor from correlativos where nombre=nombre);
> END;

No uses nombres de variable que sean iguales a los nombres de las
columnas. Estas sentencias quedan asi:

select valor from correlativos where $1=$1
lo cual es verdadero para todos los valores de $1, por lo tanto se
actualiza toda la tabla.

Otro consejo es que estas cosas deberias hacerlas en una transaccion
SERIALIZABLE (mira en SET TRANSACTION ISOLATION LEVEL).

--
Alvaro Herrera http://www.CommandPrompt.com/
The PostgreSQL Company - Command Prompt, Inc.

In response to

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Jaime Casanova 2007-08-14 04:35:45 Re: Lista de valores
Previous Message Alvaro Herrera 2007-08-13 18:34:16 Re: Lista de valores