Inicio > MySql > Obtener el último ID insertado en MySQL – LAST_INSERT_ID()

Obtener el último ID insertado en MySQL – LAST_INSERT_ID()


   Veamos como obtener el ID del último INSERT que hemos hecho en la base de datos (muy útil sobre todo en el caso de que el ID sea un “auto increment”).

La opción más correta es utilizar LAST_INSERT_ID,  para ello nada más que tenemos que hacer la siguiente consulta

SELECT DISTINCT LAST_INSERT_ID() FROM TuTabla ;

Hay que tener en cuenta que LAST_INSERT_ID() va asociado a la conexión actual, por tanto si cerramos la conexión, abrimos una nueva y consultamos el LAST_INSERT_ID nos devolverá 0, ya que es una conexión nueva en la que no hemos hecho ningún INSERT.

Ahora si deseas saber el próximo ID de una tabla

SELECT Table_name,Auto_Increment FROM INFORMATION_SCHEMA.TABLES WHERE Table_name = ‘TuTabla’;

Categorías:MySql
  1. thomas
    17 febrero 2011 a las 4:46 pm

    Hola, mi consulta va, al ingresar el dato, la linea SELECT DISTINCT LAST_INSERT_ID() FROM TuTabla ;
    me va eliminando el ultimo registro,
    como puedo hacerlo, para que tomar el ultimo id ingresado y el siguiente que entre quede despues del, y no volver a comenzar denuevo
    ej:
    2 – pedrito
    3 – juanito

    en donde 3 es el ultimo digito ingresado, y al volver a ejecutar el programa tome el 3 como primer valor y el siguiente en ingresar sea 4 y no 2 denuevo, adjunto mi consulta:

    Try
    ‘Abrir base de datos
    oConn.Open()
    ‘Cadena de texto que tiene la sentencia SQL para consultar el usuario que se quiere loguear
    oComn.CommandText = “INSERT INTO CONTROL(ID,NMESA,CLIENTE) VALUES (1, ‘” + TextBox1.Text + “‘, ‘” + TextBox3.Text + “‘)”
    oComn.CommandText = “SELECT DISTINCT (1) FROM CONTROL where id = 1″
    ‘oComn.CommandText = ” SELECT Table_name,Auto_Increment FROM cybercontrol.CONTROL WHERE Table_name = ‘ID’;”
    ‘Asigna la conexion al comando de la consulta
    oComn.Connection = oConn
    ‘Ejecutar la consulta SQL
    oData = oComn.ExecuteReader()
    MsgBox(“Bienvenido”)
    ‘Cerramos a conexion a la base de datos
    oConn.Close()
    Catch ex As Exception
    MsgBox(“Ha ocurrido un error”)
    MessageBox.Show(ex.Message)
    End Try

  2. Carlos Betancourt
    12 junio 2012 a las 1:43 pm

    2 años despues tengo una duda. Puedo asignar el resultado de la consulta last_insert…. a una variable??

  1. No trackbacks yet.

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: