Problema:
Trabaje con la tabla llamada "medicamentos" de una farmacia.
1- Elimine la tabla, si existe:
drop table if exists medicamentos;
2- Cree la tabla con la siguiente estructura:
create table medicamentos(
codigo int unsigned not null,
nombre varchar(20) not null,
laboratorio varchar(20),
precio decimal(6,2) unsigned
);
3- Visualice la estructura de la tabla "medicamentos".
4- Agregue una clave primaria por "codigo":
alter table medicamentos
add primary key (codigo);
La clave agregada, no es auto_increment, por ello, al agregar registros debemos ingresar el código,
si no lo hacemos, se almacenará el valor "0" en el primer registro agregado:
insert into medicamentos (nombre, laboratorio,precio)
values('Sertal compuesto','Bayer',5.10);
y si intentamos agregar más registros, aparecerá un mensaje indicando que la clave está repetida:
insert into medicamentos (nombre, laboratorio,precio)
values('Paracetamol 1000','Bago',2.90);
5- Para solucionar esto podemos modificar el campo convirtiéndolo en autoincrementable:
alter table medicamentos
modify codigo int unsigned auto_increment;
6- Veamos los registros:
select * from medicamentos;
El código se alteró, ahora tiene el valor "1".
7- Ingrese más registros:
insert into medicamentos (nombre, laboratorio,precio)
values('Paracetamol 500','Bago',1.90);
insert into medicamentos (nombre, laboratorio,precio)
values('Bayaspirina','Bayer',2.10);
8- Intente eliminar la clave primaria:
alter table medicamentos
drop primary key;
Aparece un mensaje de error. La clave no se puede eliminar porque el campo "codigo"
es "auto_increment" y si existe un campo con este atributo DEBE ser clave primaria.
9- Modifique el campo "codigo" quitándole el atributo "auto_increment":
alter table medicamentos
modify codigo int unsigned not null;
10- Elimine la clave primaria:
alter table medicamentos
drop primary key;
Otros problemas:
Una pequeña biblioteca de barrio registra los préstamos de sus libros en una tabla llamada "prestamos".
1- Elimine la tabla "prestamos" si existe.
2- Cree la tabla:
create table prestamos(
codigo int unsigned,
titulo varchar(40) not null,
documento char(8) not null,
fechaprestamo date not null,
fechadevolucion date,
devuelto char(1) /* si se devolvió 's' sino 'n'*/
);
3- Agregue una clave primaria compuesta por "codigo" y "fechaprestamo":
alter table prestamos
add primary key (codigo,fechaprestamo);
4- Intente agregar un registro con clave repetida.
5- Elimine la clave primaria:
alter table prestamos
drop primary key;