跳到主要内容

使用

更新

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 *;