Rumah >pembangunan bahagian belakang >Golang >Bagaimana untuk menyimpan pelbagai integer sebagai medan tunggal dalam pangkalan data PostgreSQL menggunakan Gorm?

Bagaimana untuk menyimpan pelbagai integer sebagai medan tunggal dalam pangkalan data PostgreSQL menggunakan Gorm?

Susan Sarandon
Susan Sarandonasal
2024-11-04 16:54:021054semak imbas

How to store an array of integers as a single field in a PostgreSQL database using Gorm?

Menambah Tatasusunan Integer sebagai Jenis Data dalam Model Gorm

Apabila cuba menyimpan tatasusunan nombor sebagai medan tunggal dalam pangkalan data Postgres menggunakan Gorm, pengguna mungkin menghadapi ralat yang menunjukkan jenis SQL yang tidak sah. Untuk menyelesaikan isu ini, jenis tersuai daripada pustaka asas harus digunakan.

Coretan kod berikut menunjukkan cara mengisytiharkan model Gorm dengan tatasusunan integer sebagai jenis data:

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

Untuk menambah rekod pada pangkalan data menggunakan model ini, cipta tatasusunan integer dan gunakan kaedah Cipta:

<code class="go">dt := []int64{1, 2, 3}
                                                                                
db.Create(&amp;Game{GameCode: "xxx", GameName: "xxx", DeckType: pq.Int64Array(dt), GameEndDate: "xxx"})</code>

Dengan menggunakan jenis tersuai, anda boleh bekerja dengan tatasusunan integer sebagai jenis data dalam Gorm anda dengan berkesan model apabila berinteraksi dengan pangkalan data Postgres.

Atas ialah kandungan terperinci Bagaimana untuk menyimpan pelbagai integer sebagai medan tunggal dalam pangkalan data PostgreSQL menggunakan Gorm?. 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