Cuando se modifican las propiedades de una columna clave o de una relación en un modelo de datos físicos, también se modifican las propiedades de las claves externas relacionadas.
Acción del usuario | Resultado de la migración de claves |
---|---|
Añadir una columna a una clave primaria | Si la clave primaria forma parte de una relación, la columna se migra a la tabla hijo en forma de columna de clave externa. Si la relación es de identificación, la columna migrada también se incluye como parte de las columnas de la clave primaria de la entidad hijo. Si la columna ya forma parte de una clave externa, el resto de las columnas de la clave externa ya forman parte de la clave primaria, y la relación es de no identificación, entonces la relación pasa a ser de identificación. |
Eliminar una columna de una clave primaria | Si la clave primaria forma parte de una relación, la columna que se había migrado a la tabla hijo como clave externa se elimina de la lista de columnas de la clave externa. Si la relación es de identificación, la columna migrada también se elimina de la lista de columnas de la clave primaria de la tabla hijo. Si la columna ya forma parte de una clave externa y la relación es de identificación, la relación pasa a ser de no identificación. |
Volver a ordenar las columnas de una clave primaria | Si la clave primaria forma parte de una relación, las columnas migradas de la clave externa se vuelven a ordenar para que coincidan con la clave primaria. |
Suprimir una clave primaria | Si la clave primaria participa en las relaciones, se mantienen las relaciones asociadas y las claves externas vacías. |
Modificar el tipo de datos de una columna | Si la columna forma parte de una clave primaria y la clave primaria forma parte de una relación, también cambia el tipo de datos de la columna migrada en la tabla hijo. |
Modificar la longitud, precisión o escala del tipo de datos de una columna | Si la columna forma parte de una clave primaria y la clave primaria forma parte de una relación, también cambia la longitud, precisión o escala del tipo de datos de la columna migrada en la tabla hijo. |
Suprimir una columna | Si la columna forma parte de la restricción de clave primaria o de clave de unicidad y la restricción de clave primaria o de clave de unicidad participa en una relación, la columna migrada en la tabla hijo se elimina de la lista de columnas de la clave externa hijo. Si la relación es de identificación, la columna migrada en la tabla hijo también se elimina de la lista de columnas de la clave primaria hijo. |
Añadir una columna a una restricción de clave de unicidad | Si la restricción de clave de unicidad forma parte de una relación, la columna se migra a la tabla hijo en forma de columna de clave externa. Si la relación es de identificación, la columna migrada también se incluye como parte de las columnas de restricción de clave de unicidad de la tabla hijo. Si la columna ya forma parte de una clave externa, el resto de las columnas de la clave externa ya forman parte de la restricción de clave de unicidad, y la relación es de no identificación, entonces la relación pasa a ser de identificación. |
Volver a ordenar las columnas de una restricción de clave de unicidad | No se produce ninguna migración de claves |
Eliminar una columna de una restricción de clave de unicidad | Si la clave primaria forma parte de una relación, la columna migrada en la tabla hijo se elimina de la lista de columnas de la clave externa hijo. Si la relación es de identificación, la columna migrada en la tabla hijo se elimina de la lista de columnas de la clave primaria hijo. |
Suprimir una restricción de clave de unicidad | Si la restricción de clave de unicidad participa en las relaciones, se mantienen las relaciones asociadas y las claves externas vacías. |
Añadir una columna a una clave externa | No se produce ninguna migración de claves |
Volver a ordenar las columnas de una clave externa | No se produce ninguna migración de claves |
Eliminar una columna de una clave externa | Si la columna forma parte de una clave primaria o de una restricción de clave y la clave primaria o la restricción de clave participa en una relación, la columna migrada en la tabla hijo se elimina de la lista de columnas de la clave externa hijo. En caso contrario, no se produce ninguna migración. |
Suprimir una clave externa | La relación asociada se suprime de la tabla hijo. |
Añadir una relación | Si la relación es una relación de identificación, las columnas migradas pasan a formar parte de la clave externa y de la clave primaria de la tabla hijo. Si la relación es una relación de no identificación, las columnas migradas pasan a formar parte de la clave externa de la tabla hijo. |
Suprimir una relación de identificación | La clave externa asociada se suprime de la tabla hijo. |
Suprimir una relación de no identificación | La clave externa asociada se suprime de la tabla hijo. |
Suprimir la tabla padre de una relación | Todas las columnas de la clave migrada se eliminan de la clave externa de la tabla hijo. |
Modificar el tipo de una relación | Si la relación cambia de identificación a no identificación, las columnas de la clave externa se eliminan de la clave primaria de la tabla hijo. Si la relación cambia de no identificación a identificación, las columnas de la clave externa se añaden a la clave primaria de la tabla hijo. |