Maison > développement back-end > Golang > le corps du texte

Comment stocker un tableau d'entiers sous forme de champ unique dans un modèle Gorm à l'aide de PostgreSQL ?

Susan Sarandon
Libérer: 2024-11-04 11:00:01
original
901 Les gens l'ont consulté

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

Ajout d'un tableau d'entiers en tant que type de données dans le modèle Gorm

Lorsqu'il s'agit de modèles de base de données, il est souvent nécessaire de stocker des tableaux de valeurs . Dans Gorm, l'ORM officiel pour Go, enregistrer un tableau d'entiers en tant que champ unique dans PostgreSQL peut être un défi.

Pour résoudre ce problème, Gorm prend en charge la gestion des tableaux en utilisant des types personnalisés de la bibliothèque sous-jacente. . En tirant parti de la bibliothèque pq, vous pouvez définir un type de tableau dans votre modèle.

Par exemple, considérons le modèle Gorm mis à jour suivant :

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

Ici, DeckType est défini comme pq.Int64Array , qui représente un tableau d'entiers. La balise gorm:"type:integer[]" spécifie le type PostgreSQL sous forme d'un tableau d'entiers.

Pour insérer un enregistrement avec un tableau d'entiers, affectez simplement le tableau au champ DeckType :

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

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

En utilisant les types personnalisés de pq, vous pouvez enregistrer et récupérer de manière transparente des tableaux d'entiers en tant que champ unique dans votre modèle Gorm.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!