Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

duda con claves foraneas

Estas en el tema de duda con claves foraneas en el foro de Mysql en Foros del Web. tengo una duda suponiendo que yo tengo tres tabla la primera tabla llamada tabla_padre la segunda tabla llamada tabla_madre la tercera tabla llamada tabla_hija la ...
  #1 (permalink)  
Antiguo 07/08/2010, 18:40
 
Fecha de Ingreso: septiembre-2007
Mensajes: 60
Antigüedad: 17 años, 1 mes
Puntos: 1
duda con claves foraneas

tengo una duda suponiendo que yo tengo tres tabla

la primera tabla llamada tabla_padre
la segunda tabla llamada tabla_madre
la tercera tabla llamada tabla_hija

la tabla hija tiene como campos el campo clave de la tabla_padre y el campo clave de la tabla_madre

mi pregunta es la siguiente:

suponiendo que ya tengo un registro tanto en la tabla padre como en la tabla madre, los datos de la tabla hija se lo tengo que agregar con un query para especificar que registro se añadira ?

es decir tendria que tener 3 querys para agregar los datos en cada tabla

un query para insertar en la tabla madre ----> insert into tabla_madre ......
un query para insertar en la tabla padre -----> insert into tabla_padre .....
y otro query para insertar en la tabla hija, que es la tabla con campos foraneos ----> insert into tabla_hija .......

o existe otra forma mas optima de hacerlo ?
  #2 (permalink)  
Antiguo 08/08/2010, 09:06
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: duda con claves foraneas

Cita:
o existe otra forma mas optima de hacerlo ?
No existe otra forma porque la restricción de FK exige que la KF exista siempre antes de la inserción de un registro en Hija, por lo tanto los otros dos inserts ya deben haberse ejecutado...
Por otro lado, ningún INSERT puede llevar más campos que los de la tabla a donde se inserta, por lo que no se pueda pasar datos al insert de una tabla que estén dedicados a insertarse en otra. Esto quiere decir que no puedes insertar datos en dos tablas distintas con un mimo INSERT en una de ellas (al menos no sin un TRIGGER, el cuál sólo puede recibir como datos los propios de esa tabla).
No es el mismo caso con el UPDATE, el cual puede operar contra un JOIN de tablas, al igual que DELETE.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Etiquetas: claves, foreignkey
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 10:46.