行の取得
行の取得
sqlcを使用してデータベースから行を取得する方法について説明します。
単一行の取得(:one)
単一の行を取得するには、クエリアノテーション:one
を使用します:
-- name: GetAuthor :one
SELECT * FROM authors
WHERE id = $1 LIMIT 1;
このクエリは、指定されたIDに一致する単一の著者レコードを返します。
複数行の取得(:many)
複数の行を取得するには、クエリアノテーション:many
を使用します:
-- name: ListAuthors :many
SELECT * FROM authors
ORDER BY name;
このクエリは、名前順にソートされた全ての著者のスライスを返します。
生成されるGo関数
sqlcは、これらのSQLクエリから対応するGo関数を生成します。例えば:
func (q *Queries) GetAuthor(ctx context.Context, id int64) (Author, error) {
// 実装
}
func (q *Queries) ListAuthors(ctx context.Context) ([]Author, error) {
// 実装
}
使用例
生成された関数の使用例:
// 単一の著者を取得
author, err := queries.GetAuthor(ctx, 123)
if err != nil {
return err
}
// 全ての著者をリスト
authors, err := queries.ListAuthors(ctx)
if err != nil {
return err
}
原文:https://docs.sqlc.dev/en/latest/howto/retrieving-rows.html