Edición de Registros en Bases de Datos con Diesel

Clase 8 de 21Curso de Backend con Rust: Bases de Datos, Controladores y Templates

Resumen

Una operación muy importante en toda base de datos es la actualización de los campos de un registro. Puedes utilizarlo para almacenar inmediatamente el registro actualizado en una variable y continuar trabajando con esos datos actualizados. Si no lo necesitas, simplemente conviene no declarar esa variable.

Cómo actualizar los datos con Diesel

La actualización de uno o más campos de un registro es bastante sencilla. Observemos algunos ejemplos de la sintaxis que debes utilizar:

// Actualización de un registro
diesel::update(posts.filter(id.eq(2)))
    .set(title.eq("Nuevo título"))
    .get_result::<Post>(&conn)
    .expect("Error en el update");

// Actualización de varios campos a la vez
diesel::update(posts.filter(id.eq(2)))
    .set((body.eq("Nuevo body"), title.eq("Nuevo título")))
    .get_result::<Post>(&conn)
    .expect("Error en el update");

Primero indicas el registro que quieres actualizar dentro del update() y luego en el .set() los campos a modificar con los nuevos valores. La consulta devuelve como resultado el registro actualizado que puedes guardar en una variable para que puedas continuar con la lógica de tu aplicación sin necesidad de realizar otra consulta adicional y obtenerlo.

De esta sencilla forma, ya puedes actualizar los datos de tus registros en la base de datos.


Contribución creada por: Kevin Fiorentino.