Re: Bug en update?

From: "Javier Aquino H(dot)" <JAquino(at)LexusEditores(dot)com>
To: "Espartano" <espartano(dot)mail(at)gmail(dot)com>, "PostgreSQL Ayuda Pos(dot)(dot)(dot)" <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Re: Bug en update?
Date: 2006-04-12 00:30:43
Message-ID: 000801c65dc8$55ceb3d0$0a010a0a@javier
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

En el WHERE, al momento de comparar el campo con el valor, si este último
está sin comillas se asume que es un valor numérico así que trabaja con el
valor numérico y luego lo convierte a texto para ser comparado con el campo.

where codido=7501041413123

El valor numérico de 7501041413123 es 7501041413123 el cual es convertido a
texto: '7501041413123'
y la expresión quedaría así:

where codido='7501041413123'

En el segundo caso:

where codido=000000001625

El valor numérico de 000000001625 es 1625 el cual es convertido a texto:
'1625'
y la expresión quedaría así:

where codido='1625'

Espero se entienda y entiendas cuan importante es trabajar con las comillas
en caso de datos tipo texto.

Saludos y suerte en tu proyecto.

Javier.

----- Original Message -----
From: "Espartano" <espartano(dot)mail(at)gmail(dot)com>
To: "PostgreSQL Ayuda Pos..." <pgsql-es-ayuda(at)postgresql(dot)org>
Sent: Tuesday, April 11, 2006 6:33 PM
Subject: [pgsql-es-ayuda] Bug en update?

> Buenas gente, estamos desarrollando una aplicacion con postgres 8.0.4
> y me acabo de dar cuenta de algo raro:
>
> tengo una tabla con un campo llamado "codido" de tipo varchar para
> almacenar numeros y letras que representan un codigo de barras, la
> cuestion es que al querer hacer un update a los demas campos
> utilizando el campo "codido" en el where del update (ya que el campo
> codido es unique) en ocaciones lo hace y en ocaciones no aun cuando no
> me habia percatado de que no habia puesto entrecomillado el contenido
> del campo del codigo ejemplo:
>
> tengo la tabla productos de la siguiente forma:
>
>
> puntoventa=# \d producto
> Table "public.producto"
> Column | Type | Modifiers
> ---------------+-------------------+----------------------------------------------------------
> id | integer | not null default
> nextval('public.producto_id_seq'::text)
> descripcion | text |
> precio_venta | double precision |
> precio_compra | double precision |
> cantidad | integer |
> codido | character varying |
> eliminado | boolean | default false
> Indexes:
> "producto_pkey" PRIMARY KEY, btree (id)
> "codigo_unico" UNIQUE, btree (codido)
>
> con el siguiente contenido:
>
> puntoventa=# SELECT * from producto;
> -[ RECORD 1 ]-+-------------------------------------------------
> id | 5
> descripcion | PLANTILLA
> precio_venta | 20
> precio_compra | 10
> cantidad | 0
> codido | 000000001625
> eliminado | f
> -[ RECORD 2 ]-+-------------------------------------------------
> id | 6
> descripcion | TUNY JAMON ENSALADA CON VERDURAS
> precio_venta | 16
> precio_compra | 10
> cantidad | 0
> codido | 7501041414120
> eliminado | f
> -[ RECORD 3 ]-+-------------------------------------------------
> id | 7
> descripcion | ATUN TUNY ALETA AMARILLA CON CHIPOTLE MODIFICADO
> precio_venta | 17
> precio_compra | 11
> cantidad | 1
> codido | 7501041413123
> eliminado | f
> -[ RECORD 4 ]-+-------------------------------------------------
> id | 4
> descripcion | CAJA3
> precio_venta | 80
> precio_compra | 50
> cantidad | 1
> codido | 830762002161
> eliminado | f
>
> puntoventa=#
>
> ahora haciendo un update a los registros de esta forma:
>
> puntoventa=# UPDATE producto set cantidad=100 where codido=7501041413123;
> UPDATE 1
> puntoventa=#
>
> y haciendo utro update con otro registro pero que en codido tiene 0's
> a la izquierda:
>
> puntoventa=# UPDATE producto set cantidad=100 where codido=000000001625;
> UPDATE 0
> puntoventa=#
>
> y con comillas como tiene que ser:
>
> puntoventa=# UPDATE producto set cantidad=100 where codido='000000001625';
> UPDATE 1
> puntoventa=#
>
> la pregunta seria porque pasa eso ? por los 0's o es un bug de 8.0.4
>
> gracias de antemano.
>
> ---------------------------(fin del mensaje)---------------------------
> TIP 4: No hagas 'kill -9' a postmaster
>

In response to

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Espartano 2006-04-12 00:33:15 Re: Bug en update?
Previous Message WILLIAM PARRA 2006-04-12 00:07:05 Link entre Oracle y Postgresql?