Rumah >pembangunan bahagian belakang >Golang >Bagaimana untuk Menyimpan Susunan Integer dalam Model Gorm Menggunakan PostgreSQL?

Bagaimana untuk Menyimpan Susunan Integer dalam Model Gorm Menggunakan PostgreSQL?

DDD
DDDasal
2024-11-05 14:49:02247semak imbas

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

Menambahkan Tatasusunan Integer sebagai Jenis Data dalam Model Gorm

Pengenalan:
Apabila bekerja dengan PostgreSQL menggunakan Gorm, menambah pelbagai integer sebagai jenis data dalam model boleh memberikan cabaran. Artikel ini menangani isu biasa yang dihadapi semasa mencuba operasi sedemikian.

Masalah:
Model Gorm sering menghadapi ralat apabila cuba menyimpan tatasusunan nombor dalam medan PostgreSQL tunggal. Ralat biasanya berbunyi, "panic: invalid sql type (slice) for postgres."

Penyelesaian masalah:
Isu timbul daripada menggunakan kepingan sebagai jenis data. Penyelesaiannya melibatkan penggunaan jenis tersuai daripada perpustakaan pemacu PostgreSQL yang mendasari.

Penyelesaian:
Dalam model yang disediakan:

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

Ganti DeckType []int64 dengan DeckType pq.Int64Array, di mana pq diimport sebagai import pq "github.com/lib/pq".

Teg GORM:
Untuk memetakan jenis tersuai dengan betul ke lajur pangkalan data , tambahkan teg gorm untuk menentukan jenis lajur:

<code class="go">DeckType    pq.Int64Array `gorm:"type:integer[]"`</code>

Teg ini menandakan bahawa medan DeckType harus dipetakan kepada tatasusunan integer PostgreSQL.

Contoh Sisipan:
Selepas mengubah suai model dan menambah teg GORM, anda boleh memasukkan tatasusunan integer ke dalam pangkalan data:

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

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

Dengan menggunakan jenis tersuai dan teg GORM, anda boleh berjaya menyimpan tatasusunan integer dalam medan PostgreSQL.

Atas ialah kandungan terperinci Bagaimana untuk Menyimpan Susunan Integer dalam Model Gorm Menggunakan PostgreSQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn