go mysql事務程式碼示例
阿新 • • 發佈:2018-11-17
在mysql中,可用begin, commit/rollback命令來操作,下面來看go程式碼操作:
package main import ( "fmt" "database/sql" _ "github.com/go-sql-driver/mysql" ) func main() { db, _ := sql.Open("mysql", "[email protected]/taoge") tx, _ := db.Begin() // begin transaction var aff1, aff2 int64 = 0, 0 result1, _ := tx.Exec("UPDATE user SET strValue='3041' WHERE strKey=?", "k1") result2, _ := tx.Exec("UPDATE user SET strValue='4041' WHERE strKey=?", "k2") if result1 != nil { aff1, _ = result1.RowsAffected() } if result2 != nil { aff2, _ = result2.RowsAffected(); } fmt.Println(aff1) fmt.Println(aff2) if aff1 == 1 && aff2 == 1 { tx.Commit() // commit transaction fmt.Println("ok") } else { tx.Rollback() // rollback transaction fmt.Println("failed, then rollback") } }
自測OK. 可以玩一下, 對理解mysql事務有幫助。
沒什麼好說的。