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 クエリパターンを示しています。