23 - Atributo zerofill en una columna de una tabla.


Problema:

Trabajamos con la tabla "libros" de una librería.

Eliminamos la tabla, si existe:

 drop table if exists libros;

Creamos la tabla:

 create table libros(
  codigo int(6) zerofill auto_increment,
  titulo varchar(40) not null,
  autor varchar(30),
  editorial varchar(15),
  precio decimal(5,2) unsigned,
  cantidad smallint zerofill,
  primary key (codigo)
 );

Visualizamos la estructura de la tabla:

 describe libros;

Vemos que en la columna "Type" se muestra el atributo "zerofill" en los campos en los cuales lo especificamos.

Ingresemos algunos registros:

  insert into libros (titulo,autor,editorial,precio,cantidad)
  values('Martin Fierro','Jose Hernandez','Planeta',34.5,200);
 insert into libros (titulo,autor,editorial,precio,cantidad)
  values('Aprenda PHP','Mario Molina','Emece',45.7,50);
 insert into libros (titulo,autor,editorial,precio,cantidad)
  values('Cervantes y el quijote','Borges','Paidos',23,40);

Veamos cómo se guardaron los datos:

 select * from libros;

Los valores de código están rellenados a la izquierda con ceros; también los del campo "cantidad".

Probemos ingresar un valor para código saltando la secuencia:

 insert into libros (codigo,titulo,autor,editorial,precio,cantidad)
  values('545','El aleph', 'Borges', 'Emece',33,20);

Veamos cómo lo guardó:

 select * from libros;

Ingresemos un valor negativo para los campos definidos "zerofill":

 insert into libros (codigo,titulo,autor,editorial,precio,cantidad)
  values(-400,'Matematica estas ahi', 'Paenza', 'Paidos',15.2,-100);

Veamos lo que sucedió:

 select * from libros;

Como los valores son inválidos, almacena los valores por defecto según el tipo; para el campo "auto_increment" sigue la secuencia y para el campo "cantidad" guarda "00000".




Retornar