Claves foráneas en MySQL

Sintaxis para añadir una clave foránea en MySQL

Restricciones FOREIGN KEY

MySQL permite trabajar con distintos tipos de motores de almacenamiento (MyIsam, Memory/HEAP, BDB, InnoDB, etc). Para poder trabajar con claves foráneas las tablas deben tener asignado el motor InnoDB.

Se han de cumplir ciertas condiciones para poder crear un enlace de este tipo entre distintas tablas:
Las tablas que se enlazan deben tener el mismo motor (InnoDB).
Los campos que se enlazan deben ser del mismo tipo de dato y tamaño.
Los nombres de las claves foráneas deben ser únicos en la base de datos
En la tabla que hace referencia, debe haber un índice donde las columnas de clave extranjera estén listadas en primer lugar, en el mismo orden.

Crear una clave foránea en MySQL

En esta instrucción SQL se modifica la tabla1 para añadirle una clave foránea al campotabla1 indicándole a que tabla y campo hace referencia.

ALTER TABLE tabla1
ADD CONSTRAINT nombreclaveforanea
FOREIGN KEY (campotabla1)
REFERENCES tablaquereferencia (campoquereferencia)
ON DELETE NO ACTION
ON UPDATE NO ACTION;

Eliminar una clave foránea

ALTER TABLE nombretabla DROP FOREIGN KEY nombre_clave_foranea;