Comment récupérer l'ID du dernier insert dans GORM 2.0
Dans les versions antérieures de GORM, la méthode Begin() renvoyait un objet sql.Tx qui activé la récupération du dernier ID d'insertion à l'aide de la méthode LastInsertId(). Cependant, dans GORM 2.0, cette méthode a été supprimée.
Récupération du dernier ID d'insertion dans GORM 2.0
Il existe deux méthodes pour obtenir le dernier ID d'insertion dans GORM 2.0. :
1. Utilisation de db.Last() :
Après avoir inséré une ligne dans la base de données, vous pouvez appeler la fonction db.Last(). Cela remplira le modèle avec l'ID nouvellement attribué :
<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. Accès direct à l'ID du modèle :
Vous pouvez également accéder directement au champ ID du modèle après l'insertion. L'ID aura été automatiquement renseigné lors de l'opération d'insertion :
<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>
Recommandation :
Il est recommandé d'utiliser la deuxième approche (accéder directement à l'ID du modèle) car cela élimine le besoin d’un appel supplémentaire à db.Last(). Cela peut améliorer les performances, en particulier pour les opérations d'insertion à grand volume.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!