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!