GORM 2.0 中的最後插入ID
在GORM 2.0 中,執行資料庫插入後取得最後插入的ID 與先前相比發生了變化版本。本文探討如何使用目前版本的 GORM 檢索最後插入的 ID。
在 GORM v2.0 中,Begin() 函數不再傳回 sql.Tx 對象,該物件先前提供了 LastInsertId( ) 方法。相反,應在將行插入資料庫後使用 Last() 函數。或者,可以使用更有效的方法。
使用 Create 函數成功插入資料庫後,GORM 會自動填入傳遞給函數的模型中的 ID。因此,呼叫 db.Last(&model) 是不必要的,因為模型已經包含最後插入的 ID。這種技術不僅避免了不必要的資料庫調用,還確保了資料完整性。
為了示範這一點,請考慮以下範例:
<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>
在此範例中,user1 模型自動包含最後插入的執行Create函數後的ID,可以直接使用user1.ID來訪問。這種方法非常高效,並且不需要額外的資料庫查詢或不必要的函數呼叫。
以上是如何在 GORM 2.0 中檢索最後插入的 ID?的詳細內容。更多資訊請關注PHP中文網其他相關文章!