예제 #1
0
파일: tx.go 프로젝트: upper/db
// RunTx creates a transaction context and runs fn within it.
func RunTx(d sqlbuilder.Database, fn func(tx sqlbuilder.Tx) error) error {
	tx, err := d.NewTx()
	if err != nil {
		return err
	}
	defer tx.Close()
	if err := fn(tx); err != nil {
		tx.Rollback()
		return err
	}
	return tx.Commit()
}