Rumah >pembangunan bahagian belakang >Golang >Bagaimana untuk Membetulkan Ralat Tidak Padan Kiraan Lajur Gorm Semasa Sisipan Pukal?

Bagaimana untuk Membetulkan Ralat Tidak Padan Kiraan Lajur Gorm Semasa Sisipan Pukal?

Linda Hamilton
Linda Hamiltonasal
2024-11-25 09:30:12555semak imbas

How to Fix Gorm's Column Count Mismatch Error During Bulk Inserts?

Menyelesaikan Ketakpadanan Kiraan Lajur dalam Antara Muka Tatasusunan Gorm

Apabila cuba melaksanakan sisipan pukal menggunakan kaedah Exec Gorm dengan antara muka tatasusunan, ralat mungkin berlaku menunjukkan ketidakpadanan kiraan lajur. Ralat ini timbul apabila nilai yang diberikan tidak sepadan dengan bilangan lajur yang ditakrifkan dalam pertanyaan SQL.

Untuk menyelesaikan isu ini, pastikan nilai yang dihantar kepada kaedah Exec disebarkan menggunakan operator .... Ini memberitahu pengkompil untuk menganggap elemen hirisan sebagai hujah individu dan bukannya menghantar keseluruhan hirisan sebagai nilai tunggal.

Kod yang dikemas kini di bawah menunjukkan penggunaan yang betul bagi operator ...:

tx := dB.GetWriteDB().Begin()
sqlStr := "INSERT INTO city(code, name) VALUES (?, ?),(?, ?)"
vals := []interface{}{}

vals = append(vals, "XX1", "Jakarta")
vals = append(vals, "XX2", "Bandung")

tx.Exec(sqlStr, vals...)

tx.Commit()

if err := tx.Error(); err != nil {
    // handle error
}

Dengan menggunakan operator ..., nilai dalam kepingan vals dikembangkan menjadi argumen individu, yang kemudiannya diperuntukkan dengan betul kepada lajur yang sepadan dalam pernyataan SQL. Ini menghapuskan ketidakpadanan kiraan lajur dan membolehkan sisipan pukal yang berjaya.

Atas ialah kandungan terperinci Bagaimana untuk Membetulkan Ralat Tidak Padan Kiraan Lajur Gorm Semasa Sisipan Pukal?. 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