sql >> Base de Datos >  >> RDS >> Mysql

¿Puede una clave externa hacer referencia a un índice no único?

De Documentación de MySQL :

InnoDB permite que una restricción de clave externa haga referencia a una clave no única. Esta es una extensión de InnoDB para SQL estándar.

Sin embargo, existe una razón práctica para evitar claves foráneas en columnas no únicas de la tabla a la que se hace referencia. Es decir, ¿cuál debería ser la semántica de "ON DELETE CASCADE" en ese caso?

La documentación aconseja más :

El manejo de referencias de claves externas a claves no únicas o claves que contienen valores NULOS no está bien definido (...) Se recomienda utilizar claves externas que hagan referencia solo a claves ÚNICAS (incluidas PRIMARIAS) y NO NULAS.