GO语言"database/sql"包中"Tx.Rollback"类型的用法及代码示例。
用法:
func(tx *Tx) Rollback() error
回滚中止事务。
例子:
package main
import (
"context"
"database/sql"
"log"
)
var (
ctx context.Context
db *sql.DB
)
func main() {
tx, err := db.BeginTx(ctx, &sql.TxOptions{Isolation: sql.LevelSerializable})
if err != nil {
log.Fatal(err)
}
id := 53
_, err = tx.ExecContext(ctx, "UPDATE drivers SET status = ? WHERE id = ?;", "assigned", id)
if err != nil {
if rollbackErr := tx.Rollback(); rollbackErr != nil {
log.Fatalf("update drivers: unable to rollback: %v", rollbackErr)
}
log.Fatal(err)
}
_, err = tx.ExecContext(ctx, "UPDATE pickups SET driver_id = $1;", id)
if err != nil {
if rollbackErr := tx.Rollback(); rollbackErr != nil {
log.Fatalf("update failed: %v, unable to back: %v", err, rollbackErr)
}
log.Fatal(err)
}
if err := tx.Commit(); err != nil {
log.Fatal(err)
}
}
相关用法
- GO Tx.ExecContext用法及代码示例
- GO Tx.Prepare用法及代码示例
- GO Time.Sub用法及代码示例
- GO TrailingZeros8用法及代码示例
- GO Template用法及代码示例
- GO Time.Equal用法及代码示例
- GO ToTitle用法及代码示例
- GO Time.After用法及代码示例
- GO Title用法及代码示例
- GO TrimRight用法及代码示例
- GO ToLowerSpecial用法及代码示例
- GO TempFile用法及代码示例
- GO Time.Format用法及代码示例
- GO ToUpper用法及代码示例
- GO Trunc用法及代码示例
- GO TrailingZeros32用法及代码示例
- GO To用法及代码示例
- GO Time.AppendFormat用法及代码示例
- GO Time.AddDate用法及代码示例
- GO Tan用法及代码示例
注:本文由纯净天空筛选整理自golang.google.cn大神的英文原创作品 Tx.Rollback。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。