ホームページ  >  記事  >  バックエンド開発  >  PostgresQL で整数の配列を Gorm モデル データ型として保存する方法

PostgresQL で整数の配列を Gorm モデル データ型として保存する方法

Linda Hamilton
Linda Hamiltonオリジナル
2024-11-09 08:05:02222ブラウズ

How to Store an Array of Integers as a Gorm Model Data Type in PostgresQL?

整数の配列を Gorm モデルのデータ型として統合する

問題

Gorm ユーザーは、整数の配列を Gorm モデル データ型に格納しようとすると障害に直面します。フレームワークを使用した PostgresQL データベースの単一フィールド。 「パニック: postgres の SQL タイプ (スライス) が無効です」というエラー メッセージは、Gorm のスライス データ型と PostgresQL のネイティブ配列サポートの間のデフォルトの不一致が原因で発生します。

解決策

この問題を効果的に解決するには、基礎となるデータベース ライブラリによって提供されるカスタム タイプを使用する必要があります。この場合、pq パッケージは、PostgresQL 配列をネイティブにサポートする pq.Int64Array タイプを提供します。次のコードは、適切な使用法を示しています。

<code class="go">type Game struct {
    gorm.Model
    GameCode    string
    GameName    string
    DeckType    pq.Int64Array `gorm:"type:integer[]"`
    GameEndDate string
}</code>

ここで、Game.DeckType は gorm:"type:integer[]" タグを使用して型を指定し、PostgresQL データベース内の整数の配列として効果的に定義します。

挿入例

カスタム タイプを確立した後、整数の配列をデータベースに簡単に挿入できます。

<code class="go">dt := []int64{1, 2, 3}

db.Create(&Game{GameCode: "xxx", GameName: "xxx", DeckType: pq.Int64Array(dt), GameEndDate: "xxx"})</code>

このコードは、ゲーム内に新しいレコードを作成します。テーブル。DeckType は整数の配列として保存されます。

以上がPostgresQL で整数の配列を Gorm モデル データ型として保存する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。