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

Ayuda con una consulta

Estas en el tema de Ayuda con una consulta en el foro de Mysql en Foros del Web. Hola, estoy realizando una aplicación en Java y tengo que realizar una consulta en MySQl la cual realice lo siguiente: Tengo dos tablas una pedido ...
  #1 (permalink)  
Antiguo 05/03/2008, 10:46
 
Fecha de Ingreso: abril-2007
Mensajes: 43
Antigüedad: 17 años
Puntos: 0
Ayuda con una consulta

Hola, estoy realizando una aplicación en Java y tengo que realizar una consulta en MySQl la cual realice lo siguiente:
Tengo dos tablas una pedido y otra articuloPedido, la primera contiene un campo clave id_pedido que es un entero que se autoincrementa, la tabla articuloPedido tiene dos campos clave, uno el id_pedido que es una clave foránea a "pedido" y otro ref_articulo, que es una clave foránea a la tabla "articulos".
Cuando inserte dentro de la tabla "pedido", mysql me generará automáticamente la clave "id_pedido", pero ahroa querría insertar con dicha clave en la tabla articuloPedido, ¿Cómo puedo hacerlo? Es decir, ¿cómo puedo rellenar las dos tablas al mismo tiempo? ¿Tengo que utilizar un bloque PL/SQL? ¿Puedo utilizar este tipo de construcciones en Java?

Muchas Gracias

Un saludo
Javier Mejías
  #2 (permalink)  
Antiguo 06/03/2008, 23:22
 
Fecha de Ingreso: enero-2008
Mensajes: 197
Antigüedad: 16 años, 3 meses
Puntos: 10
Re: Ayuda con una consulta

Hay una función de mysql que te regresa el último id que insertaste (de una conexión) con eso puedes desde java "al mismo" tiempo ingresar en la otra tabla los datos con el id que acabas de crear

Código:
select last_insert_id();

saludos!
  #3 (permalink)  
Antiguo 07/03/2008, 03:52
 
Fecha de Ingreso: abril-2007
Mensajes: 43
Antigüedad: 17 años
Puntos: 0
Re: Ayuda con una consulta

Gracias, voy a probar y ya te contare como me ha ido

Un saludo
Javier Mejías
  #4 (permalink)  
Antiguo 07/03/2008, 05:53
 
Fecha de Ingreso: abril-2007
Mensajes: 43
Antigüedad: 17 años
Puntos: 0
Re: Ayuda con una consulta

Hola
Ya he probado eso, y con la siguiente sentencia va
INSERT INTO Purchase(price_purchase,date_purchase,payment_purc hase,login_client) VALUES (120.2,SYSDATE(),'contraReemoblos','i12merej');
INSERT INTO PurchaseArticle(SELECT LAST_INSERT_ID(),'6',1);
INSERT INTO PurchaseArticle(SELECT LAST_INSERT_ID(),'11',1);
INSERT INTO PurchaseArticle(SELECT LAST_INSERT_ID(),'1',3);

el problema es que cada una de ellas la tengo que ejecutar en java con un
executeUpdate(sentencia), ya que si el texto anterior lo pongo en un String, al hacer el executeUpdate o execute solo me da fallo, por lo tendría que hacer cuatro execute, existiendo la posibilidad de que alguien inserte un nuevo artículo y me fastidie el invento, me gustaría saber si sabes como puedo ejecutar varias sentencias con una sola llamada.

Muchas gracias de antemano

Un saludo
Javier Mejías
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 13:18.