ホームページ >バックエンド開発 >Golang >GORM 2.0 で最後の挿入 ID を取得する方法は?

GORM 2.0 で最後の挿入 ID を取得する方法は?

Barbara Streisand
Barbara Streisandオリジナル
2024-10-26 13:24:28441ブラウズ

How to Retrieve the Last Insert ID in GORM 2.0?

GORM 2.0 で最後の挿入 ID を取得する方法

以前の GORM バージョンでは、Begin() メソッドは次の sql.Tx オブジェクトを返しました。 LastInsertId() メソッドを使用して最後の挿入 ID を取得できるようになりました。ただし、GORM 2.0 では、このメソッドは削除されました。

GORM 2.0 での最後の挿入 ID の取得

GORM 2.0 では、最後の挿入 ID を取得する方法は 2 つあります。 :

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>

推奨事項:

2 番目のアプローチ (モデルの ID に直接アクセスする) を使用することをお勧めします。追加の db.Last() 呼び出しが不要になるためです。これにより、特に大量の挿入操作のパフォーマンスが向上します。

以上がGORM 2.0 で最後の挿入 ID を取得する方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。