ホームページ > バックエンド開発 > Golang > PostgreSQL を使用して Gorm モデルに整数の配列を格納する方法

PostgreSQL を使用して Gorm モデルに整数の配列を格納する方法

DDD
リリース: 2024-11-05 14:49:02
オリジナル
237 人が閲覧しました

How to Store an Array of Integers in a Gorm Model Using PostgreSQL?

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

概要:
作業時Gorm を使用する PostgreSQL では、整数の配列をデータ型としてモデルに追加すると、課題が生じる可能性があります。この記事では、このような操作を試行するときに発生する一般的な問題について説明します。

問題:
Gorm モデルは、単一の PostgreSQL フィールドに数値の配列を保存しようとすると、多くの場合エラーが発生します。通常、エラーは「パニック: postgres の SQL タイプ (スライス) が無効です。」

トラブルシューティング:
この問題は、スライスをデータ型として使用することで発生します。この解決策には、基礎となる PostgreSQL ドライバ ライブラリのカスタム タイプを利用することが含まれます。

解決策:
提供されたモデル内:

<code class="go">type Game struct {
    gorm.Model
    GameCode    string
    GameName    string
    DeckType    pq.Int64Array
    GameEndDate string
}</code>
ログイン後にコピー

DeckType []int64 を次のように置き換えます。 DeckType pq.Int64Array、pq は import pq "github.com/lib/pq" としてインポートされます。

GORM タグ:
カスタム タイプをデータベース列に適切にマップするには、列の型を指定する gorm タグを追加します:

<code class="go">DeckType    pq.Int64Array `gorm:"type:integer[]"`</code>
ログイン後にコピー

このタグは、DeckType フィールドが PostgreSQL 整数配列にマップされる必要があることを示します。

挿入例:
モデルを変更して GORM タグを追加した後、整数の配列をデータベースに挿入できます。

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

db.Create(&Game{GameCode: "xxx", GameName: "xxx", DeckType: pq.Int64Array(dt), GameEndDate: "xxx"})</code>
ログイン後にコピー

カスタム タイプと GORM タグを使用すると、次の配列を正常に保存できます。 PostgreSQL フィールドの整数。

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

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート