[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