26/05/2012, 17:43
|
| Moderador criollo | | Fecha de Ingreso: noviembre-2007 Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años, 2 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) |