No tienes acceso a esta clase

隆Contin煤a aprendiendo! 脷nete y comienza a potenciar tu carrera

Edici贸n de Registros en Bases de Datos con Diesel

8/21
Recursos

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.

Aportes 3

Preguntas 3

Ordenar por:

驴Quieres ver m谩s aportes, preguntas y respuestas de la comunidad?

Mi ejercicio para actualizar. ```java pub fn update_post(conn: &mut PgConnection, post: &Post) -> Result<(), diesel::result::Error> { diesel::update(dsl.find(post.id)) .set(posts::title.eq("Updated")) .returning(Post::as_returning()) .get_result(conn)?; Ok(()) } ```

El uso de la variable para actualizar puede ser omitido.

diesel::update(posts.filter(id.eq(2)))
        .set(slug.eq("second-blogpost"))
        .get_result::<Post>(&conn)
        .expect("Error updating record");
En caso lo est茅n haciendo con SQLite: diesel::update(posts.filter(id.eq(2))) .set(title.eq("Nuevo t铆tulo")) .execute(connection) .expect("Error en el update"); let updated\_post = posts .filter(id.eq(2)) .first::\<Post>(connection) .expect("Error al obtener el post actualizado");