如何在GORM 2.0 檢索上次插入ID
在早期的GORM 版本中,Begin() 方法傳回一個sql.Tx對象,該對象啟用使用LastInsertId() 方法檢索最後一個插入ID。不過,在 GORM 2.0 中,該方法已被刪除。
在GORM 2.0 中取得最後一個插入ID
在GORM 2.0 中有兩種方法可以取得最後一個插入ID :
1。使用 db.Last():
向資料庫插入一行後,可以呼叫 db.Last() 函數。這將使用新分配的 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 }) db.Last(&user1) fmt.Printf("User one ID: %d\n", user1.ID)</code>
2。直接存取模型的ID:
或者,您可以在插入後直接存取模型的ID欄位。 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 }) fmt.Printf("User one ID: %d\n", user1.ID)</code>
建議:
建議使用第二種方法(直接存取模型的ID)因為它消除了額外的db.Last() 呼叫的需要。這可以提高效能,特別是對於大容量插入操作。以上是如何在 GORM 2.0 中檢索最後一個插入 ID?的詳細內容。更多資訊請關注PHP中文網其他相關文章!