sql >> Base de Datos >  >> RDS >> Oracle

¿La clave externa siempre hace referencia a una clave única en otra tabla?

Según el estándar SQL, una clave externa debe hacer referencia a la clave principal o a una clave única de la tabla principal. Si la clave principal tiene varias columnas, la clave externa debe tener el mismo número y orden de columnas. Por lo tanto, la clave externa hace referencia a una fila única en la tabla principal; no puede haber duplicados.

Re tu comentario:

Si T.A es una clave principal, entonces no, no puede tener ningún duplicado. Cualquier clave principal debe ser única y no nula. Por lo tanto, si la tabla secundaria tiene una clave externa que hace referencia a la clave principal de la principal, debe coincidir con un valor único no nulo y, por lo tanto, hace referencia exactamente a una fila en la tabla principal. En este caso, no puede crear una fila secundaria que haga referencia a varias filas principales.

Tu puedes cree una fila secundaria cuya columna de clave externa sea NULL, en cuyo caso no hace referencia a ninguna fila en la tabla principal.