53 - Agregar y eliminar la clave primaria (alter table) |
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;
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;