Sí, una clave externa es un tipo de restricción. MySQL tiene un soporte desigual para las restricciones:
PRIMARY KEY
:sí como restricción de tabla y restricción de columna.FOREIGN KEY
:sí como restricción de tabla, pero solo con motores de almacenamiento InnoDB y BDB; de lo contrario, se analizará pero se ignorará.CHECK
:analizado pero ignorado en todos los motores de almacenamiento.UNIQUE
:sí como restricción de tabla y restricción de columna.NOT NULL
:sí como restricción de columna.DEFERRABLE
y otros atributos de restricción:sin soporte.
La CONSTRAINT
le permite nombrar la restricción explícitamente, ya sea para hacer que los metadatos sean más legibles o para usar el nombre cuando desee eliminar la restricción. El estándar SQL requiere que CONSTRAINT
cláusula es opcional. Si lo omite, el RDBMS crea un nombre automáticamente y el nombre depende de la implementación.