Requisito previo: clave externa en MS SQL Server
Una columna se puede insertar en una tabla secundaria solo si es parte de la tabla principal en el caso de una clave externa. La clave foránea nos permite realizar otras acciones llamadas Acciones Referenciales . Las acciones referenciales permiten actualizar o eliminar una fila en el caso de la tabla principal. Si un usuario ha actualizado/eliminado una columna en la tabla principal, la columna también se actualiza/elimina automáticamente en la tabla secundaria.
Sintaxis:
foreign key(foreign-key_constraint) references parent_table(parentkey_column) ON Delete Action
Considere dos tablas: Student (tabla principal) y Marks (tabla secundaria) de la base de datos de la universidad. Si un usuario desea eliminar una columna, debe hacerlo como se muestra a continuación:
Mesa – Estudiante
Nombre | Rollnumber | Curso |
---|---|---|
maya | 111 | CSE |
Riya | 112 | mecánico |
Tabla – Marcas
Nombre | Rollnumber | Marcas |
---|---|---|
maya | 111 | 7.8 |
Riya | 112 | 7.6 |
La consulta SQL para realizar la acción Eliminar en la tabla es:
foreign key references Student(Name) ON Delete Action
Producción –
Mesa – Estudiante
Nombre | Rollnumber | Curso |
---|---|---|
– | 111 | CSE |
– | 112 | mecánico |
Tabla – Marcas
Nombre | Rollnumber | Marcas |
---|---|---|
– | 111 | 7.8 |
– | 112 | 7.6 |
Esto también elimina las filas de toda la tabla principal y secundaria. Hay otras acciones permitidas: sin acción, en cascada, establecer nulo, establecer predeterminado.
- On Delete No Action:
genera un error y revierte la acción de eliminación en la tabla principal. - Al eliminar cascada:
la acción en cascada elimina todas las filas de la tabla principal y secundaria. - Al eliminar establecer nulos:
las filas de la tabla principal y secundaria se establecen como nulas solo si la clave externa es anulable. - On Delete Set Default:
las filas de la tabla secundaria se configuran como predeterminadas si las filas correspondientes de la tabla principal se eliminan solo si la clave externa tiene definiciones predeterminadas.
Publicación traducida automáticamente
Artículo escrito por mangalgiaishwarya2 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA