使用
更新
user.sql
:
使用postgres提供的coalesce
与sqlc的sqlc.narg()
来对仅需要修改的字段值进行更新,
即不修改的字段会保持已有的值
-- name: UpdateUser :one
UPDATE users
SET
username = coalesce(sqlc.narg(username), username),
full_name = coalesce(sqlc.narg(full_name), full_name),
hashed_password = coalesce(sqlc.narg(hashed_password), hashed_password),
email = coalesce(sqlc.narg(email), email)
WHERE username = sqlc.arg(username)
RETURNING *;