Ver Mensaje Individual
  #9 (permalink)  
Antiguo 23/07/2014, 09:38
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: Insertar datos en una tabla

Cita:
¿Podrias decirme como podria insertar estos datos en cualquier tabla (y son 7 tablas) donde se cumpla la condicion de id_categoria_foranea?
No existe un método que permita meter algo en "cualquier tabla". SQL es un lenguaje imperartivo, y sólo indicando en qué tabla quieres hacerlo lo hará.
Esto implicaría que deberías recorrer toda la base, tabla por tabla, evaluar las relaciones, y de acuerdo a eso crear ese insert.
Pero de acuerdo a lo que dices sólo tienes siete (7) tablas relacionadas de alguna forma con esa otra, y por consecuenica bien podrías hacerlo sin problemas.
Mi sugerencia es que desarrolles todas las validaciones apra cada escenario dentro de un stored procedure, tal que de acuerdo a los parametros recibidos haga el insert que corresponda.
Como no sé cómo son las tablas, ni que condiciones evaluar (el modelo es tuyo, yo no lo veo), no te puedo decir qué criterios usar para el arbol de decisiones. Eso lo conoces tu.

Ahora bien, cuando preguntas:
Cita:
¿Podrias decirme como podria insertar estos datos en cualquier tabla (y son 7 tablas) donde se cumpla la condicion de id_categoria_foranea?
Debo entender que lo que quieres saber es cómo identificar las tablas que tienen un campo relacionado como FK respecto de otra tabla base.
Esto lo puedes ver sin problemas en la base INFORMATION_SCHEMA, que es la que adminsitra las bases en MySQL, donde la tabla TABLE_CONSTRAINTS es la que contiene esa información.
Por supuesto, eso siempre que las tablas sean InnoDB, porque de lo contrario sólo tu puedes saberlo...
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Última edición por gnzsoloyo; 23/07/2014 a las 10:18