vĂ¡lida una tablas tabla relacionar referencial referencia que para llave integridad hace foreign foranea externa datos crear creada compuesta como codigo clave agregar sql oracle database-design

una - llave foranea compuesta mysql



Referencia de clave externa a la tabla en otro esquema (5)

Esto funcionará exactamente como una clave externa que hace referencia a una tabla en su propio esquema.

Al igual que con las claves externas normales, no olvide indexar my_id si la clave principal se actualiza alguna vez o si elimina las entradas de la tabla principal (las claves externas no indexadas pueden ser una fuente de contención masiva y el índice suele ser útil de todos modos).

Traté de crear una clave externa en una de mis tablas, haciendo referencia a una columna de una tabla en un esquema diferente.

Algo como eso:

ALTER TABLE my_schema.my_table ADD ( CONSTRAINT my_fk FOREIGN KEY (my_id) REFERENCES other_schema.other_table(other_id) )

Como tenía las becas necesarias, funcionó bien.

Ahora me pregunto si hay razones para no hacer referencia a las tablas en un esquema diferente, o algo por lo que tenga cuidado.


Lo único que encontré fue asegurarme de que el permiso existía en el otro esquema. Lo habitual: si esos permisos desaparecen por algún motivo, lo sabrá.


No hay problemas para hacer esto. Los esquemas no tienen ningún impacto cuando se establecen relaciones de claves foráneas entre tablas. Solo asegúrese de que las personas adecuadas tengan los permisos necesarios para los esquemas que tiene la intención de usar.


Si se encuentra en una organización donde diferentes personas tienen autoridad sobre diferentes esquemas, creo que es una buena práctica dar al otro esquema la capacidad de desactivar, o incluso soltar y recrear, su restricción.

Por ejemplo, podrían necesitar dejar caer o truncar su tabla y luego volver a cargarla para manejar algún problema de soporte (muy raro). A menos que quiera que lo llamen en mitad de la noche, le recomiendo darles la posibilidad de eliminar temporalmente su restricción. (También recomiendo configurar sus propias alertas para que sepa si alguna de sus restricciones externas se desactivan o se descartan). Cuando cruza líneas de organización / esquema, quiere jugar bien con los demás. El índice que Vincent mencionó es otra parte de eso.


Una razón por la cual esto puede causar problemas es que debe tener cuidado de eliminar las cosas en el orden correcto. Esto puede ser bueno o malo dependiendo de lo importante que es nunca tener huérfanos en sus tablas.