Maison  >  Article  >  développement back-end  >  Comment récupérer le dernier identifiant inséré dans GORM 2.0 ?

Comment récupérer le dernier identifiant inséré dans GORM 2.0 ?

Barbara Streisand
Barbara Streisandoriginal
2024-10-25 11:55:02984parcourir

How to Retrieve the Last Inserted ID in GORM 2.0?

Dernier ID d'insertion dans GORM 2.0

Dans GORM 2.0, l'obtention du dernier ID inséré après l'exécution d'une insertion de base de données a subi des modifications par rapport au précédent versions. Cet article explique comment récupérer le dernier ID inséré à l'aide de la version actuelle de GORM.

Dans GORM v2.0, la fonction Begin() ne renvoie plus d'objet sql.Tx, qui fournissait auparavant le LastInsertId( ) méthode. Au lieu de cela, la fonction Last() doit être utilisée après avoir inséré une ligne dans la base de données. Alternativement, une approche plus efficace est disponible.

Après une insertion réussie dans la base de données à l'aide de la fonction Créer, GORM remplit automatiquement l'ID dans le modèle transmis à la fonction. Par conséquent, l’appel de db.Last(&model) n’est pas nécessaire car le modèle contient déjà le dernier ID inséré. Cette technique évite non seulement les appels inutiles à la base de données, mais garantit également l'intégrité des données.

Pour le démontrer, considérons l'exemple suivant :

<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>

Dans cet exemple, le modèle user1 contient automatiquement le dernier inséré ID après avoir exécuté la fonction Create, accessible directement à l'aide de user1.ID. Cette méthode est efficace et élimine le besoin de requêtes de base de données supplémentaires ou d'appels de fonction inutiles.

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn