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

Guardar en Dos Tablas Con Una Sola Sentencia SQL

Estas en el tema de Guardar en Dos Tablas Con Una Sola Sentencia SQL en el foro de Mysql en Foros del Web. Saludos Gente del Foro. Sucede que tengo dos tablas en una base de datos, las cuales necesito guardar por medio de un solo formulario, es ...
  #1 (permalink)  
Antiguo 28/11/2011, 09:01
Avatar de danj  
Fecha de Ingreso: octubre-2011
Ubicación: Calarcho
Mensajes: 53
Antigüedad: 12 años, 7 meses
Puntos: 1
Pregunta Guardar en Dos Tablas Con Una Sola Sentencia SQL

Saludos Gente del Foro.

Sucede que tengo dos tablas en una base de datos, las cuales necesito guardar por medio de un solo formulario, es decir que cuando yo le de clic al boton de guardar, la consulta me guarde los datos en las dos tablas a la vez, utilizando una sola consulta SQL. Por lo que escuche, tengo que guardar primero en una sola tabla y luego en la misma consulta crear una subconsulta que me guarde en la segunda tabla tambien, pero la verdad no entiendo muy bien de que forma puedo plantear la consulta, cabe anotar que las dos tablas tienen una relacion de uno a varios.

Espero me puedan Colaborar.

Saludos.
  #2 (permalink)  
Antiguo 28/11/2011, 09:23
Avatar de 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: Guardar en Dos Tablas Con Una Sola Sentencia SQL

En realidad tu pregunta es muy habitual. En el último mes y medio han preguntado lo mismo al menos cuatro o cinco veces, y en todos los casos la respuesta es la misma: Si tienes dos tablas para cargar, debes hacer dos sentencias INSERT de SQL, una para cada tabla. No hay otra.

Entendamos esto:
1) Lo que hagas en el formulario es irrelevante para la base de datos. Que tengas un sólo formulario no implica que la carga de datos sea en una sola sentencia, ni en una sola tabla (estoy en un proyecto en que un "Submit" de la vista del formulario desencadena 57 INSERTs diferentes en 34 procedimientos, y no exagero).
2) Si tienes dos tablas para cagar datos, tienes dos INSERTs distintos, porque no existe JOIN en el INSERT.
3) Si quieres hacer un sólo envío a la base, usa un procedimiento almacenado en la base que se ocupen de ambos INSERT.
4) Si el segundo depende del éxito del primero, usa TRANSACTIONs o stored procedures. En algunos casos pueden usarse TRIGGERs. Cualquiera de las opciones puede servirte.

Para poder ejemplificarlo con tu propio caso, deberías postear la estructura de las tablas, y decir qué condición de éxito de la primera consulta determina que se haga o no la segunda o se elimine todo.
__________________
¿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: sentencia, sql, tabla, tablas
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.
Tema Cerrado




La zona horaria es GMT -6. Ahora son las 02:36.