Bagaimana untuk Mendapatkan ID Terakhir yang Dimasukkan dalam GORM 2.0?

Barbara Streisand
Lepaskan: 2024-10-25 11:55:02
asal
996 orang telah melayarinya

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>
Salin selepas log masuk

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!

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
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!