23 - Atributo zerofill en una columna de una tabla. |
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".