Maison  >  Article  >  développement back-end  >  Comment stocker un tableau d'entiers sous forme de champ unique dans une base de données PostgreSQL à l'aide de Gorm ?

Comment stocker un tableau d'entiers sous forme de champ unique dans une base de données PostgreSQL à l'aide de Gorm ?

Susan Sarandon
Susan Sarandonoriginal
2024-11-04 16:54:02957parcourir

How to store an array of integers as a single field in a PostgreSQL database using Gorm?

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

Lorsque vous essayez d'enregistrer un tableau de nombres en tant que champ unique dans une base de données Postgres utilisant Gorm, les utilisateurs peuvent rencontrer une erreur indiquant un type SQL non valide. Pour résoudre ce problème, des types personnalisés de la bibliothèque sous-jacente doivent être utilisés.

L'extrait de code suivant montre comment déclarer un modèle Gorm avec un tableau d'entiers comme type de données :

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

Pour ajouter des enregistrements à la base de données à l'aide de ce modèle, créez un tableau d'entiers et utilisez la méthode Create :

<code class="go">dt := []int64{1, 2, 3}
                                                                                
db.Create(&amp;Game{GameCode: "xxx", GameName: "xxx", DeckType: pq.Int64Array(dt), GameEndDate: "xxx"})</code>

En employant des types personnalisés, vous pouvez travailler efficacement avec des tableaux d'entiers comme types de données dans votre Gorm modèles lors de l'interaction avec une base de données Postgres.

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!

Déclaration:
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