Ver Mensaje Individual
  #7 (permalink)  
Antiguo 31/08/2009, 16:54
mogoxd
 
Fecha de Ingreso: diciembre-2007
Mensajes: 77
Antigüedad: 16 años, 4 meses
Puntos: 3
Respuesta: Problema Foreign Key Nula

Cita:
Iniciado por gnzsoloyo Ver Mensaje
Una FK no puede ser NULL porque eso no cumpliría con la restricción de PK: Si la PK no puede ser nula, y la FK apunta a ella, evidentemente hereda la restricción.
El único caso en que MySQL acepta una FK nula es cuando la tabla referida no tiene PK sino un indice UNIQUE, el cual debe estar definido sobre un campo NULL.
Mira, eso de que una clave externa no puede ser nula, pienso que no es cierto.

Una clave externa es un campo que apunta a otra tabla, pero esto no quiere decir que no pueda ser nula.
Los principales caso en el que la clave externa no pueda ser nula son:

- En relaciones 1:N, en que la participacion de la otra tabla externa es completa.
- En relacion de identidad, en la que la clave principal esta constituida por varios campos (o uno solo), y uno de estos campos en una clave externa.

Quiza si te expico esto, veras que estas equivocado. Cuando defines una clave externa, puedes usar varias opciones: ON DELETE y ON UPDATE. Los parametros que se pueden usar con estas opciones son principalmente.

- CASCADE: Borrar o actualizar en cascada.
- SET NULL: Actualizar el campo al valor NULL.

Con lo cual, cuando defines una clave externa y le pones por ejemplo ON UPDATE CASCADE ON DELETE SET NULL, cuando elimines la clave de la tabla relacionada, esta cambiara a null el valor de campo de los registros de las otras tablas que estan relacionadas y cuando lo cambies o acualices, lo cambiara en todas las tablas relacionadas.