Open4

「sqlc 雑感」 という記事を書くためのメモ

voluntasvoluntas

sqlc とは

voluntasvoluntas

利用方法

  1. sqlc をインストールする
    • go install github.com/kyleconroy/sqlc/cmd/sqlc@latest
    • sqlc-dev/sqlc かも
  2. SQL を書く
  3. sqlc generate で実行

基本的にはこれだけ。ただし SQL を書くとき以下のように書く。

-- name: ListAccounts :many
SELECT * FROM account;

sql.Null* からの脱却

sqlc の emit_pointers_for_null_types を使って sql.Null* 地獄から脱却する

トランザクション

トランザクションは簡単に利用できます。

sqlc と pgxpool でトランザクション

sqlc 設定ファイル

  • sqlc.yaml を用意する
    • sqlc.json でも行ける
  • 個人的に YAML の方が見やすい
    • コメント書けるし
  • schema と query はディレクトリにするのがお勧め
voluntasvoluntas

sqlc 文法

@display_name という感じで変数が指定可能です。

-- name: CreateAccount :exec
INSERT INTO account (
    display_name
) VALUES (
    @display_name
);

動的に値を変えられます。

if err := s.query.CreateAccount(c.Request().Context(), displayName); err != nil {
        zlog.Error().Err(err).Send()
        return echo.NewHTTPError(http.StatusInternalServerError)
}