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
>
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? |