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

Procedure que rellene claves foraneas

Estas en el tema de Procedure que rellene claves foraneas en el foro de Mysql en Foros del Web. Hola buenas, mi duda es la siguiente al introducir una clave primaria en la tabla videojuegos y una clave primaria en la tabla distribuidora. @import ...
  #1 (permalink)  
Antiguo 20/05/2015, 12:59
 
Fecha de Ingreso: mayo-2015
Mensajes: 2
Antigüedad: 9 años, 5 meses
Puntos: 0
Procedure que rellene claves foraneas

Hola buenas, mi duda es la siguiente al introducir una clave primaria en la tabla videojuegos y una clave primaria en la tabla distribuidora.

Código SQL:
Ver original
  1. CREATE TABLE videojuegos(
  2.     cod_videojuegos INT(10) AUTO_INCREMENT,
  3.     id_pedido INT(10),
  4.     creador VARCHAR(20),
  5.     titulo VARCHAR(30),
  6.     precio FLOAT,
  7.     compañia VARCHAR(30),
  8.     PRIMARY KEY(cod_videojuegos));
  9.    
  10.  
  11. CREATE TABLE distribuidora(
  12.     cod_distribuidora INT(10) AUTO_INCREMENT,
  13.     compañia VARCHAR(30),
  14.     ciudad VARCHAR(40),
  15.     PRIMARY KEY(cod_distribuidora));

Tengo que hacer una procedure que rellene las claves foraneas de esta tabla.
Código SQL:
Ver original
  1. CREATE TABLE video_distrib(
  2.     cod_videojuegos INT(10),
  3.     cod_distribuidora INT(10),
  4.     PRIMARY KEY(cod_videojuegos,cod_distribuidora),
  5.     INDEX(cod_videojuegos,cod_distribuidora),
  6.     FOREIGN KEY (cod_videojuegos) REFERENCES videojuegos(cod_videojuegos),
  7.     FOREIGN KEY (cod_distribuidora) REFERENCES distribuidora(cod_distribuidora));
Mi duda es que lo tengo que hacer con una procedure por php,o con variables, como una especie de programa que haga lo que pida, un saludo, cntxtadme lo antes posible.

Última edición por gnzsoloyo; 20/05/2015 a las 13:09
  #2 (permalink)  
Antiguo 20/05/2015, 13:14
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: Procedure que rellene claves foraneas

La de distribuidoras es básicamente una tabla casi fija: Rara vez hay un alta en esa tabla, porque no hay demasiadas distribuidoras que aparezcan neuvas. Pero en esencia esa es la principal y primera en lelnarse.
Luego, cuando das el alta a un video, entonces debes indicar a qué distribuidora pertenece, y por tanto antes de isnertar un vieo, tienes ese dato.
Por consecuencia, cuando insertas el video en la tabla de videos, inmediatamente recuperas el ID generado por ese insert y creas un nuevo registro en la tabla de distribuidoras y videos...
Esa es la lógica que debes hacer. El cómo lo hagas, dependerá de tu decisión:
1) Si lo haces programáticamente, deberás enviar cada insert por separado, y los datos de uno dependerán del anterior.
2) Si lo ahces por SP, deberás pasar todos los datos necesarios por parámetro al SP, y el SP deberá realizar cada paso en la misma secuencia.

No hay caminos cortos, y no hay automatizaciones posibles...
__________________
¿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, procedure, tabla
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:35.