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 サイトの他の関連記事を参照してください。