Saltar la navegación

6.9. ALTER: Modificación de claves

Otro uso habitual de ALTER TABLE es cambiar o añadir definiciones de clave primaria y clave foránea a una tabla. Las sentencias que añaden definiciones de claves primarias o foráneas a una tabla son exactamente iguales que las de la sentencia CREATE TABLE y funcionan del mismo modo.

Las cláusulas que crean o suprimen una clave primaria o una clave foránea son sencillas, tal y como puede verse en los siguientes ejemplos:

ALTER TABLE oficinas ADD FOREIGN KEY enregion(region) REFERENCES regiones

ALTER TABLE repventas DROP FOREIGN KEY operaen
ALTER TABLE oficinas DROP PRIMARY KEY

En el segundo ejemplo se puede observar como para poder eliminar la claveprimaria de la tabla OFICINAS hemos de eliminar la clave foránea de la tabla REPVENTAS. Además, es conveniente resaltar que la clave foránea sólo puede ser eliminada si la relación tiene nombre, en caso contrario la tabla deberá ser tratada como en el caso anterior de supresión de una columna.

Para añadir un nombre a la relación de clave foránea sólo hay que añadir la palabra CONSTRAINT y el nombre de la relación después de ADD. Por ejemplo:

ALTER TABLE oficinas ADD CONSTRAINT fk_regiones FOREIGN KEY enregion(region) REFERENCES regiones;

De esta forma se habría creado la relación foránea fk_regiones que luego puede eliminarse así:

ALTER TABLE oficinas DROP FOREIGN KEY fk_regiones;