PUERTA | GATE-IT-2004 | Pregunta 78

Considere dos tablas en una base de datos relacional con columnas y filas de la siguiente manera:

Mesa: Estudiante
Roll_no Nombre id_depto
1 A B C 1
2 DEF 1
3 GHI 2
4 JKL 3
Tabla: Departamento
id_depto nombre_depto
1 A
2 B
3 C

Roll_no es la clave principal de la tabla Student, Dept_id es la clave principal de la tabla Department y Student.Dept_id es una clave externa de Department.Dept_id
¿Qué sucederá si intentamos ejecutar las siguientes dos declaraciones SQL?

  1. actualizar el conjunto de estudiantes Dept_id = Nulo donde Roll_on = 1
  2. actualizar Departamento establecer Dept_id = Nulo donde Dept_id = 1

(A) Ambos (i) y (ii) fallarán
(B) B) (i) fallarán pero (ii) tendrán éxito
(C) (i) tendrán éxito pero (ii) fallarán
(D) Ambos (i) y (ii) tendrá éxito

Respuesta: (C)
Explicación:  

  • actualice Student set Dept_id = Null where Roll_on = 1 -> Esto tendrá éxito ya que roll no es la clave principal y podemos establecer una clave externa NULL
  • actualizar Departamento establecido Dept_id = Nulo donde Dept_id = 1 -> Como la tabla de Estudiantes (Roll no 1 y 2) se refieren a Dept_id, por lo que, de acuerdo con la restricción de integridad referencial, NO podemos eliminar Dept_id. Sin embargo, excepcionalmente podemos superarlo si queremos usar Cascaded Eliminar opción.

Cuestionario de esta pregunta
Comente a continuación si encuentra algo incorrecto en la publicación anterior

Publicación traducida automáticamente

Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *