Re: Problemas al igualar?...

From: Juan Martínez <jeugenio(at)umcervantes(dot)cl>
To: Patricio Cifuentes Ithal <pcifuentes(at)siigsa(dot)cl>
Cc: postgresql-es <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Re: Problemas al igualar?...
Date: 2006-09-28 18:30:31
Message-ID: 451C14C7.8080608@umcervantes.cl
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Patricio Cifuentes Ithal escribió:
> no se si sera un bugs, ya que me causa un poco de ilogica este problema.
> tengo una query de un update el cual es el siguiente
>
> Update usuario SET usuario_num = 1 WHERE usuario_fol = 600001;

Ok.

> bueno el tema del problema no esta dentro del set, si no que en el WHERE el campo usuario_fol es un int2

Entonces eso que pones ahi esta mal. Un INT2 esta entre [-32768|32767] y
el valor 600001 ciertamente esta fuera de rango.

> y me da un error de que ese campo es muy pequeño para la cifra en la cual estoy igualando

Obvio.

> claro el mensaje de error es super logico, pero ese error corresponde?.

Mmmm...que crees tu?

> Pienso yo que esos errores deben estar y salen y estan cuando trato de insertar o actualizar un campo con un valor mas grande que el que soporta, pero en una igualacion dentro de un WHERE realmente es un opco tonto, creo?

No pues.

Imaginate que el ORDBMS termina actualizando cualquier tupla. Lindo no?

Por algo existen los tipos de datos. No tan solo para delimitar o mas
bien dicho, definir por definir lo que un atributo en la tabla va a
contener.

Generalmente, cuando uno diseña una BD, todo debiera ser de tipo
numerico, excepto lo estrictamente necesario. Por suerte postgres tiene
varias opciones de tipos numericos.

Yo incluso a veces, uso a proposito determinados tipos de numericos para
hacer integridad de datos. Si un determinado campo se que no debiera
albergar valores superiores a 10000 aprox., por ejemplo, voy a usar un
INT2, aunque podria usar INT4 o INT8 y con CHECK hago la limitacion.
Hasta donde se el rendimiendo no varia mucho entre usar cualquiera de
los INT, pero sirve como una manera muy rudimentaria de hacer
integridad...muy util por lo demas.

Entonces obvio que postgres se va a molestar si le estas tratando de
pasar un valor que esta fuera de rango...

> si hay alguna respuesta logica o una estructura o esquema que corresponda por favor envienmela.

Mira la documentacion.

--
Juan Martinez G.
Departamento de Informatica
Universidad Miguel de Cervantes

In response to

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Juan Martínez 2006-09-28 18:42:04 Re: Problemas con restore de base de datos de PostgresSql8.0 a 8.1
Previous Message Hensa 2006-09-28 18:27:58 RE: Problemas al igualar?...