En este post vamos a ver cómo obtener el último id insertado en la base de datos usando Go también conocido como Golang.
No importa la base de datos que usemos, siempre y cuando usemos database/sql
. Con esto podemos conectar a MySQL, PostgreSQL, SQLite3, etcétera.
Veamos entonces cómo obtener el id del último elemento insertado o el id del elemento del último insert.
Al momento de ejecutar una consulta obtenemos un Result. Por ejemplo cuando invocamos a baseDeDatos.Exec
el método nos devuelve un resultado y un error.
Podemos obtener el id de la última inserción invocando a resultado.LastInsertId
.
Aquí tenemos un ejemplo con SQLite3. Obviamente tú puedes cambiar el motor, el nombre y todo eso. Esto solo es un ejemplo.
El código de ejemplo queda así:
// https://parzibyte.me/blog
bd, err:= sql.Open("sqlite3", "mibd.bd") // Puede ser cualquier motor
if err != nil {
panic(err)// Manejar error como tú prefieras
}
defer bd.Close()
// Puede ser cualquier consulta
resultado, err := bd.Exec(`INSERT INTO personas(nombre)
VALUES
(?)`, "Luis")
if err != nil {
panic(err)// Manejar error como tú prefieras
}
ultimoId,err := resultado.LastInsertId()
if err != nil{
panic(err)// Manejar error como tú prefieras
}
// Aquí ya tenemos a ultimoId, haz lo que quieras con él
En la línea 3 abrimos la base de datos, luego aplazamos el cierre de la misma con defer en Go. Ejecutamos una consulta simple en la línea 10 y obtenemos el último id en la línea 16.
Ya solo para mostrarte otro ejemplo, te muestro el código que estoy usando en una función de un sistema que ando programando:
func registrarNuevoPlatillo(platillo Platillo) (int64, error) {
bd, err := obtenerBD()
if err != nil {
return 0, err
}
defer bd.Close()
resultado, err := bd.Exec(`INSERT INTO platillos(nombre, descripcion, precio, foto)
VALUES
(?, ?, ?, ?)`, platillo.Nombre, platillo.Descripcion, platillo.Precio, platillo.Foto)
if err != nil {
return 0, err
}
return resultado.LastInsertId()
}
Te dejo más tutoriales de Go por aquí.
En este post te quiero compartir un código de C++ para listar y cancelar trabajos…
Gracias a WebAssembly podemos ejecutar código de otros lenguajes de programación desde el navegador web…
Revisando y buscando maneras de imprimir un PDF desde la línea de comandos me encontré…
Esta semana estuve recreando la API del plugin para impresoras térmicas en Android (HTTP a…
Hoy te enseñaré a extraer la cadena base64 de una clave PEM usando una función…
Encender un foco con un Bot de Telegram es posible usando una tarjeta como la…
Esta web usa cookies.