Heim > Backend-Entwicklung > Golang > Wie speichere ich ein Array von Ganzzahlen als Gorm-Modell-Datentyp in PostgresQL?

Wie speichere ich ein Array von Ganzzahlen als Gorm-Modell-Datentyp in PostgresQL?

Linda Hamilton
Freigeben: 2024-11-09 08:05:02
Original
228 Leute haben es durchsucht

How to Store an Array of Integers as a Gorm Model Data Type in PostgresQL?

Array von Ganzzahlen als Gorm-Modelldatentyp integrieren

Das Problem

Gorm-Benutzer stehen beim Versuch, ein Array von Ganzzahlen innerhalb eines zu speichern, vor einem Hindernis einzelnes Feld einer PostgresQL-Datenbank mithilfe des Frameworks. Die Fehlermeldung „Panik: Ungültiger SQL-Typ (Slice) für Postgres“ entsteht aufgrund der Standardinkongruenz zwischen dem Slice-Datentyp von Gorm und der nativen Array-Unterstützung von PostgresQL.

Die Lösung

Zu beheben Um dieses Problem effektiv zu lösen, ist es notwendig, benutzerdefinierte Typen zu verwenden, die von der zugrunde liegenden Datenbankbibliothek bereitgestellt werden. In diesem Fall bietet das pq-Paket den Typ pq.Int64Array, der PostgresQL-Arrays nativ unterstützt. Der folgende Code veranschaulicht die ordnungsgemäße Verwendung:

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

Wobei Game.DeckType den Typ mithilfe des Tags gorm:"type:integer[]" angibt und ihn effektiv als Array von Ganzzahlen innerhalb der PostgresQL-Datenbank definiert.

Beispieleinfügung

Nachdem Sie den benutzerdefinierten Typ festgelegt haben, können Sie mühelos ein Array von Ganzzahlen einfügen die Datenbank:

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

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

Dieser Code erstellt einen neuen Datensatz in der Spieltabelle, in der DeckType als Array von Ganzzahlen gespeichert wird.

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

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage