package main import ( "fmt" "gorm.io/driver/sqlite" "gorm.io/gorm" ) //type User struct { // ID uint `gorm:"primaryKey"` // Name string `gorm:"size:100"` // Email string `gorm:"size:100;unique"` //} func main() { db, _ := gorm.Open(sqlite.Open("test.db"), &gorm.Config{}) db.AutoMigrate(&User{}) db.Transaction(func(tx *gorm.DB) error { tx.Create(&User{Name: "Alice", Email: "alice@example.com"}) // 创建 SavePoint tx.SavePoint("sp1") tx.Create(&User{Name: "Bob", Email: "bob@example.com"}) // 回滚到 SavePoint tx.RollbackTo("sp1") return nil }) // 检查结果 var count int64 db.Model(&User{}).Count(&count) fmt.Printf("Total users: %d (should be 1, only Alice)\n", count) }