Heim  >  Artikel  >  Backend-Entwicklung  >  Wie rufe ich die letzte Einfügungs-ID in GORM 2.0 ab?

Wie rufe ich die letzte Einfügungs-ID in GORM 2.0 ab?

Barbara Streisand
Barbara StreisandOriginal
2024-10-26 13:24:28359Durchsuche

How to Retrieve the Last Insert ID in GORM 2.0?

So rufen Sie die letzte Einfügungs-ID in GORM 2.0 ab

In früheren GORM-Versionen gab die Begin()-Methode ein sql.Tx-Objekt zurück, das aktivierte den Abruf der letzten Einfüge-ID mit der Methode LastInsertId(). In GORM 2.0 wurde diese Methode jedoch entfernt.

Abrufen der letzten Einfügungs-ID in GORM 2.0

Es gibt zwei Methoden, um die letzte Einfügungs-ID in GORM 2.0 abzurufen :

1. Mit db.Last():

Nachdem Sie eine Zeile in die Datenbank eingefügt haben, können Sie die Funktion db.Last() aufrufen. Dadurch wird das Modell mit der neu zugewiesenen ID gefüllt:

<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. Direkter Zugriff auf die ID des Modells:

Alternativ können Sie nach dem Einfügen direkt auf das ID-Feld des Modells zugreifen. Die ID wird während des Einfügevorgangs automatisch ausgefüllt:

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

Empfehlung:

Es wird empfohlen, den zweiten Ansatz zu verwenden (direkter Zugriff auf die ID des Modells). da dadurch die Notwendigkeit eines zusätzlichen db.Last()-Aufrufs entfällt. Dies kann die Leistung verbessern, insbesondere bei Einfügevorgängen mit hohem Volumen.

Das obige ist der detaillierte Inhalt vonWie rufe ich die letzte Einfügungs-ID in GORM 2.0 ab?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn