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

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

DDD
DDDOriginal
2024-11-05 14:49:02247Durchsuche

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

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

Einführung:
Beim Arbeiten Bei PostgreSQL mit Gorm kann das Hinzufügen eines Arrays von Ganzzahlen als Datentyp in einem Modell eine Herausforderung darstellen. Dieser Artikel befasst sich mit einem häufigen Problem, das beim Versuch eines solchen Vorgangs auftritt.

Problem:
Bei Gorm-Modellen tritt häufig ein Fehler auf, wenn versucht wird, ein Zahlenarray in einem einzelnen PostgreSQL-Feld zu speichern. Der Fehler lautet normalerweise: „Panik: Ungültiger SQL-Typ (Slice) für Postgres.“

Fehlerbehebung:
Das Problem entsteht durch die Verwendung des Slice als Datentyp. Die Lösung beinhaltet die Verwendung benutzerdefinierter Typen aus der zugrunde liegenden PostgreSQL-Treiberbibliothek.

Lösung:
Im bereitgestellten Modell:

Ersetzen Sie DeckType []int64 durch DeckType pq.Int64Array, wobei pq als Import-pq importiert wird "github.com/lib/pq".

GORM-Tag:
Um den benutzerdefinierten Typ ordnungsgemäß der Datenbankspalte zuzuordnen, fügen Sie ein Gorm-Tag hinzu, um den Spaltentyp anzugeben:

Dieses Tag gibt an, dass das DeckType-Feld einer PostgreSQL-Ganzzahl zugeordnet werden soll Array.

Beispiel für das Einfügen:
Nachdem Sie das Modell geändert und das GORM-Tag hinzugefügt haben, können Sie ein Array von Ganzzahlen in die Datenbank einfügen:

Durch die Verwendung des benutzerdefinierten Typs und des GORM-Tags können Sie erfolgreich ein Array von Ganzzahlen in einem PostgreSQL-Feld speichern.

Das obige ist der detaillierte Inhalt vonWie speichere ich mit PostgreSQL ein Array von Ganzzahlen 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