Update

Bob を使用した PostgreSQL の UPDATE クエリの例を示します。

基本的な UPDATE

UPDATE users SET name = $1, updated_at = $2 WHERE id = $3
psql.Update("users").
    Set("name", psql.Arg("Updated Name")).
    Set("updated_at", psql.Arg(time.Now())).
    Where(psql.Quote("id").EQ(psql.Arg(1)))

複数条件での UPDATE

UPDATE users SET active = $1 
WHERE created_at < $2 AND last_login IS NULL
psql.Update("users").
    Set("active", psql.Arg(false)).
    Where(
        psql.Quote("created_at").LT(psql.Arg(time.Now().AddDate(0, -6, 0))),
        psql.Quote("last_login").IsNull(),
    )

JOIN を使用した UPDATE

UPDATE users SET status = $1 
FROM user_profiles 
WHERE users.id = user_profiles.user_id 
  AND user_profiles.verified = $2
psql.Update("users").
    Set("status", psql.Arg("verified")).
    From("user_profiles").
    Where(
        psql.Quote("users", "id").EQ(psql.Quote("user_profiles", "user_id")),
        psql.Quote("user_profiles", "verified").EQ(psql.Arg(true)),
    )

RETURNING 句付きの UPDATE

UPDATE users SET name = $1, updated_at = $2 
WHERE id = $3 
RETURNING id, name, updated_at
psql.Update("users").
    Set("name", psql.Arg("Updated Name")).
    Set("updated_at", psql.Arg(time.Now())).
    Where(psql.Quote("id").EQ(psql.Arg(1))).
    Returning("id", "name", "updated_at")

これらの例は、Bob を使用して PostgreSQL で実行可能な様々な UPDATE クエリパターンを示しています。