Pregunta

Tengo una pregunta acerca de eliminaciones en cascada y referencias de clave externa: Vamos a suponer que las siguientes tablas:

ITEMX                 | ITEMY
------------------    | ------------
ID    FKID_ITEMY      | ID
1     1               | 1
2     1               |

Hay una cascada de borrar en FKID_ITEMY tal que si elimino una fila en ITEMX, se elimina el elemento correspondiente en ITEMY. Mi pregunta es:

¿El borrado de ID de fila 1 en ITEMX de eliminación de ID de fila 1 en ITEMY?

O se acaba de eliminar la fila ID 1 en ITEMX debido fila ID 2 todavía se está refiriendo fila ID 1 en ITEMY?

En otras palabras, me gustaría ver la fila 1 de Identificación ITEMY elimina cuando ya no hay más referencias a él. Será una cascada eliminar lograr esto?

¿Fue útil?

Solución

Tienes el concepto de eliminaciones en cascada hacia atrás .

A pesar de que se declara FKID_ITEMY con una opción de borrado en cascada, no pasa nada si se elimina ITEMX donde ID = 1.

El comportamiento en cascada afecta a lo que sucede si la fila se hace referencia en ITEMY se elimina. Si elimina ITEMY donde ID = 1, eliminará las dos filas de ITEMX que la referencia de esa fila.

declarar el comportamiento en cascada en la clave externa en una tabla dependiente, ya que podría tener otra tabla dependiente ITEMZ, y desea que se comporte de manera diferente. P.ej. si se intenta eliminar una fila en ITEMY entonces usted quiere que vaya a cancelarse si existe alguna referencia a filas en ITEMZ.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top