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

Select last_insert_id()

Estas en el tema de Select last_insert_id() en el foro de Mysql en Foros del Web. Hola , tengo un problema y 1 duda que aprovecho de preguntar ahora para no crear mas temas. la situacion: Resulta que quiero insertar campos ...
  #1 (permalink)  
Antiguo 20/04/2010, 11:03
Avatar de Cero_Cool  
Fecha de Ingreso: abril-2007
Ubicación: Chile
Mensajes: 113
Antigüedad: 17 años
Puntos: 6
Select last_insert_id()

Hola , tengo un problema y 1 duda que aprovecho de preguntar ahora para no crear mas temas.

la situacion:
Resulta que quiero insertar campos en un tabla en la cual existe un campo llamado cod_orden el cual es de auto incremento. Una vez echo esto, quiero extraer el registro generado en ese campo, po ejemplo, si tengo en la tabla

cod_orden
--------------
0
1
2
3

e ingreso un nuevo registro que queda con el corelativo numero 4, quiero que despues del ingreso pueda sacar ese registro, el punto que lo hago de esta forma y en ves de sacarme el ultimo ingresado en la tabla, me saca todos los registros del campo cod_orden

SELECT LAST_INSERT_ID(cod_orden)
from ordenes_trabajo;

mi otra duda, es:
esactamente que hace el COMMIT ?, porque por lo que lei, se supone que graba permanetemente los cambios de registro en la bd, pero eso no lo entiendo del todo porque sin usar commit, realizando un insert en una tabla, luego puedo perfectamente apagar el pc y luego cuando vuelvo a ver aun siguen ahi esos registros y no tuve nesesidad de usar commit.
de antemano muchas gracias.
  #2 (permalink)  
Antiguo 20/04/2010, 13:06
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 2 meses
Puntos: 360
Respuesta: Select last_insert_id()

Cita:
e ingreso un nuevo registro que queda con el corelativo numero 4, quiero que despues del ingreso pueda sacar ese registro, el punto que lo hago de esta forma y en ves de sacarme el ultimo ingresado en la tabla, me saca todos los registros del campo cod_orden

SELECT LAST_INSERT_ID(cod_orden)
from ordenes_trabajo;
Para esto puedes usar algo como:
Código SQL:
Ver original
  1. SELECT (MAX(cod_orden) + 1) AS maximo FROM ordenes_trabajo;

Cita:
mi otra duda, es:
esactamente que hace el COMMIT ?, porque por lo que lei, se supone que graba permanetemente los cambios de registro en la bd, pero eso no lo entiendo del todo porque sin usar commit, realizando un insert en una tabla, luego puedo perfectamente apagar el pc y luego cuando vuelvo a ver aun siguen ahi esos registros y no tuve nesesidad de usar commit.
de antemano muchas gracias.
En mysql, la opción auto_commit está por defecto en true. Esto es necesario cuando haces uso de las transacciones. En caso de que haya errores, puedes recuperar tus datos haciendo uso de rollback. Sin embargo, si no usas transacciones, el auto_commit es implicito.

Mira el penultimo post de las faq's de mysql donde doy un ejemplo del uso de transacciones.

saludos
__________________
Without data, You are another person with an opinion.
W. Edwads Deming
  #3 (permalink)  
Antiguo 20/04/2010, 13:47
Avatar de Cero_Cool  
Fecha de Ingreso: abril-2007
Ubicación: Chile
Mensajes: 113
Antigüedad: 17 años
Puntos: 6
Respuesta: Select last_insert_id()

Muchas gracias amigo huesos52, tu ayuda me a sido muy util en la practica y ademas he podido disipar dudas. Un apreton de manos desde Chile y muchas gracias !

Etiquetas: 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 01:17.