Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk Mendapatkan ID Terakhir yang Dimasukkan dalam GORM 2.0?

Bagaimana untuk Mendapatkan ID Terakhir yang Dimasukkan dalam GORM 2.0?

Barbara Streisand
Barbara Streisandasal
2024-10-25 11:55:02984semak imbas

How to Retrieve the Last Inserted ID in GORM 2.0?

ID Sisipan Terakhir dalam GORM 2.0

Dalam GORM 2.0, mendapatkan ID yang dimasukkan terakhir selepas melaksanakan sisipan pangkalan data telah mengalami perubahan berbanding sebelumnya versi. Artikel ini meneroka cara untuk mendapatkan ID yang terakhir dimasukkan menggunakan versi semasa GORM.

Dalam GORM v2.0, fungsi Begin() tidak mengembalikan objek sql.Tx lagi, yang sebelum ini menyediakan LastInsertId( ) kaedah. Sebaliknya, fungsi Last() harus digunakan selepas memasukkan baris ke dalam pangkalan data. Sebagai alternatif, pendekatan yang lebih cekap tersedia.

Selepas pemasukan pangkalan data yang berjaya menggunakan fungsi Cipta, GORM secara automatik mengisi ID dalam model yang dihantar kepada fungsi tersebut. Oleh itu, memanggil db.Last(&model) adalah tidak perlu kerana model sudah mengandungi ID yang dimasukkan terakhir. Teknik ini bukan sahaja mengelakkan panggilan pangkalan data yang tidak diperlukan tetapi juga memastikan integriti data.

Untuk menunjukkan ini, pertimbangkan contoh berikut:

<code class="go">type User struct {
    gorm.Model
    Name string
}

user1 := User{Name: "User One"}

_ = db.Transaction(func(tx *gorm.DB) error {
    tx.Create(&user1)
    return nil
})

// This is unnecessary
// db.Last(&user1)

fmt.Printf("User one ID: %d\n", user1.ID)</code>

Dalam contoh ini, model user1 secara automatik mengandungi yang terakhir dimasukkan ID selepas melaksanakan fungsi Cipta, yang boleh diakses terus menggunakan user1.ID. Kaedah ini cekap dan menghapuskan keperluan untuk pertanyaan pangkalan data tambahan atau panggilan fungsi yang tidak diperlukan.

Atas ialah kandungan terperinci Bagaimana untuk Mendapatkan ID Terakhir yang Dimasukkan dalam GORM 2.0?. 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