[Solar-tecnica] [mysql] Ingresar valor numerico exacto

Pablo Manuel Rizzo info en pablorizzo.com
Jue Sep 18 02:30:01 CEST 2008


On Wed, Sep 17, 2008 at 16:54, hernan lopez pardo
<hernanlopezpardo en gmail.com> wrote:
> Saludos a todos:
>
> Les comento, genere una base de datos donde estoy cargando informacion
> de recetarios y los numeros de las recetas son 16 y siempre empiezan
> con 3 "ceros" al principio. Cuando cree la tabla :
>
> CREATE TABLE remedios (nombre VARCHAR(15), receta BIGINT(16),
> presentado DATE, aprobado DATE, rechazado DATE, entregado DATE, death
> DATE);
>
> Fijense que la entrada receta es un tipo de de datos BIGINT de 16
> digitos, entonces al cargar datos:
>
>  LOAD DATA INFILE ('rapamune','0006065168969', '2008-09-18', NULL, NULL,NULL);
>
> Pero la salida ignora los 'ceros' a la izquierda :
>
> mysql> SELECT * FROM remedios;
> +----------+------------+------------+----------+-----------+-----------+
> | nombre  | receta     | presentado | aprobado | rechazado | entregado |
> +----------+------------+------------+----------+-----------+-----------+
> | rapamune | 6065168969 | 2008-09-18 | NULL     | NULL      | NULL      |
> +----------+------------+------------+----------+-----------+-----------+

Siempre serán ceros los tres primeros? En tal caso, si no necesitás
hacer operaciones numéricas y no tenés problemas de espacio ni de
performance, podés usar tipo varchar. Si necesitás optimizar los
indices y el espacio ocupado o hacer operaciones matemáticas, podés
almacenarlos así y luego al momento de mostralos al usuario añadirle
los ceros adelante. Pero primero averiguá si hay algún caso en que
esos tres dígitos sean distintos de cero.

-- 
Pablo Manuel Rizzo
----------------------------------------------------------------------
Aunque supiera que el mundo se acabará mañana,
Igual plantaría mi manzano. -- Martin Luther King --
----------------------------------------------------------------------


Más información sobre la lista de distribución Solar-tecnica