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 サイトの他の関連記事を参照してください。