Rumah > pembangunan bahagian belakang > Golang > Bagaimana untuk Menyimpan Array Integer sebagai Jenis Data Model Gorm dalam PostgresQL?

Bagaimana untuk Menyimpan Array Integer sebagai Jenis Data Model Gorm dalam PostgresQL?

Linda Hamilton
Lepaskan: 2024-11-09 08:05:02
asal
233 orang telah melayarinya

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

Mengintegrasikan Tatasusunan Integer sebagai Jenis Data Model Gorm

Isunya

Pengguna Gorm menghadapi halangan semasa cuba menyimpan tatasusunan integer dalam medan tunggal pangkalan data PostgresQL menggunakan rangka kerja. Mesej ralat, "panic: invalid sql type (slice) for postgres," timbul disebabkan oleh ketidakpadanan lalai antara jenis data slice Gorm dan sokongan tatasusunan asli PostgresQL.

Resolusi

Untuk menangani isu ini dengan berkesan, adalah perlu untuk menggunakan jenis tersuai yang disediakan oleh perpustakaan pangkalan data asas. Dalam kes ini, pakej pq menawarkan jenis pq.Int64Array, yang menyokong tatasusunan PostgresQL secara asli. Kod berikut menunjukkan penggunaan yang betul:

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

Where Game.DeckType menentukan jenis menggunakan teg gorm:"type:integer[]", dengan berkesan mentakrifkannya sebagai tatasusunan integer dalam pangkalan data PostgresQL.

Contoh Sisipan

Selepas mewujudkan jenis tersuai, anda boleh dengan mudah 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>
Salin selepas log masuk

Kod ini mencipta rekod baharu dalam Permainan jadual, tempat DeckType disimpan sebagai tatasusunan integer.

Atas ialah kandungan terperinci Bagaimana untuk Menyimpan Array Integer sebagai Jenis Data Model Gorm dalam PostgresQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan