53 - Agregar y eliminar la clave primaria (alter table) |
Hasta ahora hemos aprendido a definir una clave primaria al momento de crear una tabla. Con "alter table" podemos agregar una clave primaria a una tabla existente.
Continuamos con nuestra tabla "libros", definida con la siguiente estructura:
- código, int unsigned auto_increment, - titulo, varchar(40), - autor, varchar(30), - editorial, varchar (20), - precio, decimal(5,2) unsigned, - cantidad smallint unsigned.
Para agregar una clave primaria a una tabla existente usamos:
alter table libros add primary key (codigo);
Usamos "alter table" con "add primary key" y entre paréntesis el nombre del campo que será clave.
Si intentamos agregar otra clave primaria, aparecerá un mensaje de error porque (recuerde) una tabla solamente puede tener una clave primaria.
Para que un campo agregado como clave primaria sea autoincrementable, es necesario agregarlo como clave y luego redefinirlo con "modify" como "auto_increment". No se puede agregar una clave y al mismo tiempo definir el campo autoincrementable. Tampoco es posible definir un campo como autoincrementable y luego agregarlo como clave porque para definir un campo "auto_increment" éste debe ser clave primaria.
También usamos "alter table" para eliminar una clave primaria.
Para eliminar una clave primaria usamos:
alter table libros drop primary key;
Con "alter table" y "drop primary key" eliminamos una clave primaria definida al crear la tabla o agregada luego.
Si queremos eliminar la clave primaria establecida en un campo "auto_increment" aparece un mensaje de error y la sentencia no se ejecuta porque si existe un campo con este atributo DEBE ser clave primaria. Primero se debe modificar el campo quitándole el atributo "auto_increment" y luego se podrá eliminar la clave.
Si intentamos establecer como clave primaria un campo que tiene valores repetidos, aparece un mensaje de error y la operación no se realiza.