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

insert y select en misma consulta

Estas en el tema de insert y select en misma consulta en el foro de Mysql en Foros del Web. preguntonta: quiero hacer un insert, y a continuacion un select para traerme el ultimo id(todo en una misma consulta). en C# se podia asi que ...
  #1 (permalink)  
Antiguo 08/04/2010, 19:32
 
Fecha de Ingreso: abril-2010
Mensajes: 8
Antigüedad: 14 años
Puntos: 0
insert y select en misma consulta

preguntonta:

quiero hacer un insert, y a continuacion un select para traerme el ultimo id(todo en una misma consulta). en C# se podia asi que seguro con php tambien.

la funcion mysql_query da error si hay mas de una consulta. cual hay que usar? no encuentro ninguna que me sirva!!! help!

por ahora lo resolvi dividiendo la consulta en dos, pero quedaria mas optimo hacer todo junto..

desde ya gracias!
  #2 (permalink)  
Antiguo 09/04/2010, 10:58
 
Fecha de Ingreso: diciembre-2009
Mensajes: 33
Antigüedad: 14 años, 4 meses
Puntos: 0
Respuesta: insert y select en misma consulta

$sqlQuery = mysql_query( "INSERT INTO datos VALUES('','$dwish')", $link); // mi consulta

$ultimoID=mysql_insert_id(); // ultimo id ingresado en mi tabla datos

echo "$ultimoID"; // lo muestro



espero te sirva...
  #3 (permalink)  
Antiguo 09/04/2010, 17:41
 
Fecha de Ingreso: abril-2010
Mensajes: 8
Antigüedad: 14 años
Puntos: 0
Respuesta: insert y select en misma consulta

asaaaaaaaa.... esa mysql_insert_id no me la conocia,.,, yo hice lo mismo pero con un

"SELECT MAX(id) FROM tabla ..."

igualmente a lo que queria llegar es a alguna funcion que me permita hacer:

"INSERT INTO tabla (nombre, direccion, otraas cosas) VALUES (valor1, valor2, valor3); SELECT MAX(id) FROM tabla"

asi todo junto, de esa forma se ejecuta todo en la misma transaccion. si alguno conoce que usar estaria bueno hacerlo asi. sino el ejemplo de dwish va como piña
  #4 (permalink)  
Antiguo 11/04/2010, 21:41
Avatar de locmasm  
Fecha de Ingreso: noviembre-2007
Ubicación: México D. F.
Mensajes: 301
Antigüedad: 16 años, 5 meses
Puntos: 1
Respuesta: insert y select en misma consulta

Cita:
Iniciado por pgm_88 Ver Mensaje
asaaaaaaaa.... esa mysql_insert_id no me la conocia,.,, yo hice lo mismo pero con un

"SELECT MAX(id) FROM tabla ..."

igualmente a lo que queria llegar es a alguna funcion que me permita hacer:

"INSERT INTO tabla (nombre, direccion, otraas cosas) VALUES (valor1, valor2, valor3); SELECT MAX(id) FROM tabla"

asi todo junto, de esa forma se ejecuta todo en la misma transaccion. si alguno conoce que usar estaria bueno hacerlo asi. sino el ejemplo de dwish va como piña
De hecho, ahi no esta junto, con el ; ya estas terminando la primer consulta e iniciando una distinta, en si no lo puedes hacer junto y al mismo tiempo, que lo tengas en la misma línea no significa que se ejecutan 2 consultas en una sola.
  #5 (permalink)  
Antiguo 12/04/2010, 01:54
 
Fecha de Ingreso: abril-2010
Mensajes: 8
Antigüedad: 14 años
Puntos: 0
Respuesta: insert y select en misma consulta

obviamente, en una misma consulta es imposible, hablo de hacerlo en una misma transaccion, quitas trafico al server, y ademas te ahorras el problema de que si dos tipos a la vez insertan (o sea compran), puede que se le retorne un id que no es el que le corresponde, y se te cruzan las compras.
  #6 (permalink)  
Antiguo 12/04/2010, 14:48
 
Fecha de Ingreso: septiembre-2008
Mensajes: 20
Antigüedad: 15 años, 7 meses
Puntos: 0
Respuesta: insert y select en misma consulta

pues otra alternativa seria SP:

Código:
DELIMITER $$

DROP PROCEDURE IF EXISTS nombre_procedimeinto $$
CREATE PROCEDURE nombre_procedimeinto (valor1, valor2, valor3)
BEGIN

INSERT INTO tabla (nombre, direccion, otraas cosas) VALUES (valor1, valor2, valor3);
SELECT MAX(id) AS ultimoId FROM tabla;
END $$

DELIMITER ;
y en php solo

Código:
$sql="CALL  nombre_procedimeinto(valor1, valor2, valor3)";
y para escribir ultimo id pues seria

Código:
echo $arreglo ['ultimoId'];
espero y te sirva saludos
  #7 (permalink)  
Antiguo 12/04/2010, 19:14
 
Fecha de Ingreso: abril-2010
Mensajes: 8
Antigüedad: 14 años
Puntos: 0
Respuesta: insert y select en misma consulta

procedimiento almacenado! claro... que analfabeto soy a veces jajaj ni se me habia ocurrido! gracias teloxzak!!
  #8 (permalink)  
Antiguo 14/04/2010, 18:38
 
Fecha de Ingreso: septiembre-2008
Mensajes: 20
Antigüedad: 15 años, 7 meses
Puntos: 0
Respuesta: insert y select en misma consulta

me da gusto que te alla servido mi ayuda, saludos

Etiquetas: insert, select
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 07:53.