diesel.rs:尝试使用复合主键更新列

问题描述 投票:0回答:1

我正在努力寻找更新专栏的方法。 该列有一个复合主键。

我尝试过类似的方法:

    for anime_ranking in new_anime_rankings {
        let mut db_anime_ranking: models::AnimeRanking = anime_rankings
            .find((anime_ranking.id, anime_ranking.genre_combo_id))
            .first(&mut connection)?;
        println!("{}", db_anime_ranking.id);

        db_anime_ranking.times_watched += 1; // directly increment it by 1 as anime_ranking.times_watched is always 1
        update(anime_rankings.filter((id.eq(anime_ranking.id), genre_combo_id.eq(anime_ranking.genre_combo_id))))
            .set(times_watched.eq(db_anime_ranking.times_watched += 1))
            .execute(&mut connection)?;
    }

虽然不起作用。我在文档中也找不到任何有关它的信息。 请帮助我。

database rust orm rust-diesel
1个回答
0
投票

找到了。 你必须使用.and():

update(anime_rankings.filter(id.eq(anime_ranking.id).and(genre_combo_id.eq(anime_ranking.genre_combo_id)))
© www.soinside.com 2019 - 2024. All rights reserved.