Heim >Backend-Entwicklung >Golang >Wie speichere ich mit PostgreSQL ein Array von Ganzzahlen als einzelnes Feld in einem Gorm-Modell?

Wie speichere ich mit PostgreSQL ein Array von Ganzzahlen als einzelnes Feld in einem Gorm-Modell?

Susan Sarandon
Susan SarandonOriginal
2024-11-04 11:00:01991Durchsuche

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

Hinzufügen eines Arrays von Ganzzahlen als Datentyp im Gorm-Modell

Beim Umgang mit Datenbankmodellen ist es oft notwendig, Arrays von Werten zu speichern . In Gorm, dem offiziellen ORM für Go, kann das Speichern eines Arrays von Ganzzahlen als einzelnes Feld in PostgreSQL eine Herausforderung sein.

Um dieses Problem zu beheben, bietet Gorm Unterstützung für die Verarbeitung von Arrays durch die Verwendung benutzerdefinierter Typen aus der zugrunde liegenden Bibliothek . Durch die Nutzung der pq-Bibliothek können Sie einen Array-Typ innerhalb Ihres Modells definieren.

Betrachten Sie beispielsweise das folgende aktualisierte Gorm-Modell:

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

Hier ist DeckType als pq.Int64Array definiert , das ein Array von ganzen Zahlen darstellt. Das Tag gorm:"type:integer[]" gibt den PostgreSQL-Typ als Ganzzahl-Array an.

Um einen Datensatz mit einem Array von Ganzzahlen einzufügen, weisen Sie das Array einfach dem DeckType-Feld zu:

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

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

Durch die Verwendung benutzerdefinierter Typen von pq können Sie Arrays von Ganzzahlen nahtlos als einzelnes Feld in Ihrem Gorm-Modell speichern und abrufen.

Das obige ist der detaillierte Inhalt vonWie speichere ich mit PostgreSQL ein Array von Ganzzahlen als einzelnes Feld in einem Gorm-Modell?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn