SQLC は Bool 型 PostgreSQL をオーバーライドします
php小编西瓜为您带来关于SQLC覆盖Bool类型PostgreSQL的介绍。SQLC是一个强大的SQL查询构建器,它可以方便地与各种数据库进行交互。在使用PostgreSQL时,SQLC提供了对Bool类型的覆盖支持,使得我们可以更灵活地处理和查询布尔值。通过SQLC,我们可以轻松地在PostgreSQL中进行布尔值的增删改查操作,提高开发效率并简化代码编写过程。无论是初学者还是有经验的开发者,都可以通过SQLC轻松地操作PostgreSQL中的布尔类型数据。
问题内容
我正在使用 sqlc,并且我的 yaml 配置文件包含 postgresql 的以下类型覆盖:
gen: go: emit_json_tags: true package: "hmdb" out: "hmdb" overrides: - db_type: "hstore" nullable: true go_type: "github.com/jackc/pgtype.hstore" - db_type: "text" nullable: true go_type: import: "gopkg.in/guregu/null.v4" package: "null" type: "string" - db_type: "timestamptz" nullable: true go_type: import: "gopkg.in/guregu/null.v4" package: "null" type: "time"
这里的一切都有效,但如果我添加:
- db_type: "bool" nullable: true go_type: import: "gopkg.in/guregu/null.v4" package: "null" type: "bool"
我没有得到预期的结果。我也尝试过 boolean
和 bit
无论有没有 nullable
都无济于事。
我在这里定义了一个更新查询:
-- name: setuser :one update users set username = coalesce(sqlc.narg(username), username), email = coalesce(sqlc.narg('email'), email), phone = coalesce(sqlc.narg('phone'), phone), password = coalesce(sqlc.narg('password'), password), mfatoken = coalesce(sqlc.narg('mfatoken'), mfatoken), active = coalesce(sqlc.narg('active'), active) where id = $1 returning *;
但生成的结构如下所示:
type SetUserParams struct { ID uuid.UUID `json:"id"` Username null.String `json:"username"` Email null.String `json:"email"` Phone null.String `json:"phone"` Password null.String `json:"password"` MFAToken null.String `json:"mfatoken"` Active sql.NullBool `json:"active"` }
我想使用 null.bool
而不是 sql.nullbool
,这可能吗?
解决方法
像这样创建 schema.yaml
:
create table users ( ... active pg_catalog.bool )
在 sqlc.yaml
中,条目应如下所示:
- db_type: "pg_catalog.bool" nullable: true go_type: import: "gopkg.in/guregu/null.v4" package: "null" type: "bool"
然后在 sqlcgenerate
之后它看起来像这样:
type SetUserParams struct { ... Active null.Bool `json:"active"` }
因此它使用 null.bool
而不是 sql.nullbool
。
以上がSQLC は Bool 型 PostgreSQL をオーバーライドしますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









OpenSSLは、安全な通信で広く使用されているオープンソースライブラリとして、暗号化アルゴリズム、キー、証明書管理機能を提供します。ただし、その歴史的バージョンにはいくつかの既知のセキュリティの脆弱性があり、その一部は非常に有害です。この記事では、Debian SystemsのOpenSSLの共通の脆弱性と対応測定に焦点を当てます。 Debianopensslの既知の脆弱性:OpenSSLは、次のようないくつかの深刻な脆弱性を経験しています。攻撃者は、この脆弱性を、暗号化キーなどを含む、サーバー上の不正な読み取りの敏感な情報に使用できます。

この記事では、プロファイリングの有効化、データの収集、CPUやメモリの問題などの一般的なボトルネックの識別など、GOパフォーマンスを分析するためにPPROFツールを使用する方法について説明します。

この記事では、GOでユニットテストを書くことで、ベストプラクティス、モッキングテクニック、効率的なテスト管理のためのツールについて説明します。

Go Crawler Collyのキュースレッドの問題は、Go言語でColly Crawler Libraryを使用する問題を調査します。 �...

この記事では、go.modを介してGOモジュールの依存関係の管理、仕様、更新、競合解決をカバーすることについて説明します。セマンティックバージョンや定期的な更新などのベストプラクティスを強調しています。

バックエンド学習パス:フロントエンドからバックエンドへの探査の旅は、フロントエンド開発から変わるバックエンド初心者として、すでにNodeJSの基盤を持っています...

この記事では、GOでテーブル駆動型のテストを使用して説明します。これは、テストのテーブルを使用して複数の入力と結果を持つ関数をテストする方法です。読みやすさの向上、重複の減少、スケーラビリティ、一貫性、および
