From: | Espartano <espartano(dot)mail(at)gmail(dot)com> |
---|---|
To: | "PostgreSQL Ayuda Pos(dot)(dot)(dot)" <pgsql-es-ayuda(at)postgresql(dot)org> |
Subject: | Bug en update? |
Date: | 2006-04-11 23:33:31 |
Message-ID: | d353bd50604111633u60f7d79eg3bbe126b7ff8ea94@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
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.
From | Date | Subject | |
---|---|---|---|
Next Message | Alvaro Herrera | 2006-04-11 23:49:47 | Re: Bug en update? |
Previous Message | deepthroat | 2006-04-11 21:18:25 | Re: error en transacción |