Ver Mensaje Individual
  #2 (permalink)  
Antiguo 26/05/2012, 17:43
Avatar de gnzsoloyo
gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: Clave foranea sale NULL

Es posible que sea un error conceptual... Bastante habitual en los principiantes.

Entendamos primero que una foreign key existe para asegurar la integridad referencial, esto es, que no pueda ser ingresado en ese campo un valor que no exista previamente en la tabla referenciada (aquella a la que se apunta).
Pero el hecho de que declares una FK en una tabla no significa que un valor de la tabla referida vaya a ser asignado automáticamente y sin intervención del usuario a la FK. No. Lo único que hace es asegurarse que no metan la pata y le pongan un valor no válido.
¿Se entiende?

Esto significa que eres tú el que tiene que asignar ese valor al campo que es FK, cuando haces un INSERT o UPDATE en esa tabla. Y eso es precisamente lo que no estás haciendo.

Ningún DBMS pone automáticamente el valor de la FK tomándolo de la tabla base, porque eso es imposible. Si la tabla referida tuviese 10.000 registros, ¿cómo haría el sistema para saber cuál de los 10.000 valores tiene que poner. ¿No te parece?
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)