事务的定义

1
一组逻辑上不可分割的的数据操作单元。

特点

  • Atomicity: 原子操作,一组对数据库的操作要嘛都做要嘛都不做。

  • Consistency: 一致性,独立执行的事务保持数据库数据的一致。

  • Isolation: 隔离性,数据库中同时进行的事务互不影响。

  • Durability:数据操作后的数据要持久化到数据库。

在golang中

1
2
3
4
5
6
7
8
9
10
11
12
tx, err := db.Begin() // db: sql.DB
if err != nil {
return err
}

if err := sqlFunc(); err != nil {
tx.Rollback()
}

if err := tx.Commit(); err != nil {
return err
}