Skip to content

Commit

Permalink
docs: Add more examples to updating rows (#1499)
Browse files Browse the repository at this point in the history
  • Loading branch information
kyleconroy committed Mar 19, 2022
1 parent 30253d3 commit 0a71841
Showing 1 changed file with 52 additions and 5 deletions.
57 changes: 52 additions & 5 deletions docs/howto/update.md
Expand Up @@ -5,12 +5,53 @@ CREATE TABLE authors (
id SERIAL PRIMARY KEY,
bio text NOT NULL
);
```

-- name: UpdateAuthor :exec
UPDATE authors SET bio = $2
WHERE id = $1;
## Single parameter

If your query has a single parameter, your Go method will also have a single
parameter.

```sql
-- name: UpdateAuthorBios :exec
UPDATE authors SET bio = $1;
```

```go
package db

import (
"context"
"database/sql"
)

type DBTX interface {
ExecContext(context.Context, string, ...interface{}) error
}

func New(db DBTX) *Queries {
return &Queries{db: db}
}

type Queries struct {
db DBTX
}

const updateAuthorBios = `-- name: UpdateAuthorBios :exec
UPDATE authors SET bio = $1
`

func (q *Queries) UpdateAuthorBios(ctx context.Context, bio string) error {
_, err := q.db.ExecContext(ctx, updateAuthorBios, bio)
return err
}
```

## Multiple parameters

If your query has more than one parameter, your Go method will accept a
`Params` struct.

```go
package db

Expand All @@ -36,8 +77,14 @@ UPDATE authors SET bio = $2
WHERE id = $1
`

func (q *Queries) UpdateAuthor(ctx context.Context, id int, bio string) error {
_, err := q.db.ExecContext(ctx, updateAuthor, id, bio)
type UpdateAuthorParams struct {
ID int32
Bio string
}

func (q *Queries) UpdateAuthor(ctx context.Context, arg UpdateAuthorParams) error {
_, err := q.db.ExecContext(ctx, updateAuthor, arg.ID, arg.Bio)
return err
}
```

0 comments on commit 0a71841

Please sign in to comment.