Maison > développement back-end > Golang > Comment récupérer le dernier ID d'insertion dans GORM 2.0 ?

Comment récupérer le dernier ID d'insertion dans GORM 2.0 ?

Barbara Streisand
Libérer: 2024-10-26 13:24:28
original
437 Les gens l'ont consulté

How to Retrieve the Last Insert ID in GORM 2.0?

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>
Copier après la connexion

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>
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal