Cómo insertar, actualizar y eliminar valores en filas con restricciones de clave externa en bases de datos relacionales

Para insertar una fila en una tabla con claves externas, el valor de cada clave externa ya debe existir en cada tabla referenciada como clave principal en esa tabla.

Entonces, si una clave aún no existe en la tabla referenciada, primero se debe insertar una fila en esa tabla antes de intentar insertar una fila en la tabla de referencia.

Una excepción a esto ocurre cuando la clave externa permite valores nulos. En ese caso, si el campo es nulo, puede insertar la fila en la tabla ya que no tiene referencia (todavía) a la otra tabla.

Por ejemplo, si tiene una tabla de Empleados con clave principal EmployeeId, y una tabla de Departamentos con una clave principal DepartmentId, y una tabla DepartmentEmployees que relaciona los dos y contiene una clave externa EmployeeId y una clave externa DepartmentId, no puede insertar una fila en DepartmentEmployees para EmployeeId 1201 y Department 24 hasta que haya insertado una fila para EmployeeId 1201 en la tabla Employees y una fila para DepartmentId 24 en la tabla Departments.

El otro aspecto de una restricción de clave primaria / externa, utilizando el ejemplo que se acaba de describir, es que no puede eliminar una fila de, por ejemplo, EmployeeId 3725 de Employees hasta que todas las claves externas que hacen referencia a EmployeeId 3725 se hayan establecido en nulo (si está permitido) o su filas eliminadas

Del mismo modo, cualquier actualización de valores de clave externa debe consistir en claves primarias válidas (existentes) o nulas (donde esté permitido).

Estas reglas aseguran que en todo momento las referencias de claves externas sean válidas; es decir, que las claves principales a las que se refieren realmente existen.

More Interesting

¿La mayoría de los satélites estadounidenses todavía funcionan en un sistema informático basado en DOS?

¿Por qué no hay soluciones para los problemas NP-Hard?

En la programación de ensamblaje (todos los tipos), ¿es útil / necesaria la instrucción de salto a desplazamiento (PC + x) si ya hay una instrucción de salto que apunta a un registro o valor absoluto? Estoy pidiendo una PC que estoy diseñando actualmente.

¿De qué manera pensaría una inteligencia general artificial autodirigida sobre el mundo y los asuntos humanos?

¿Qué tan serios son los revisores y los presidentes de área con refutación en una conferencia de renombre?

¿Alguien puede darme una explicación detallada sobre IoT (internet de las cosas)?

¿Cuáles son las diferencias entre una computadora en clúster y un sistema distribuido?

¿Esperar que un MacBook Air funcione como una computadora completa durante cinco años espera demasiado? ¿Es realmente más estable que las otras opciones, como Windows 8 y Linux?

¿Cuál es la función principal del núcleo en los sistemas operativos?

Cómo ver si se está bloqueando la computadora

¿Crees que las computadoras y la inteligencia artificial manipularán el futuro de la humanidad?

Para garantizar una mayor seguridad de la computadora, ¿podrían las actualizaciones no hacerse automáticas (requeridas) y las versiones no compatibles (como XP) se terminarán (dejarán de funcionar)?

¿Cómo es estudiar EECS en el MIT?

¿Cómo se almacena la información en binario?

¿Qué hace exactamente Rufus?