beego orm 調用多次sql的事物同步


在使用beego的時候,有個問題,操作多個增刪改操作的時候,怎么樣子事物同步
這里簡單介紹一種,一條事物處理多條sql,普通執行,沒有調用攜程
下面是一次性刪除多張表的數組,然后最后一次性提交事物

var buf bytes.Buffer
buf.WriteString(" DELETE FROM table1")
buf.WriteString(" WHERE ID =?")
o := orm.NewOrm()
o.Begin() //開事物
_, err := o.Raw(buf.String(), 45).Exec()
if err != nil {
o.Rollback()
return false, err
}
var buf2 bytes.Buffer
buf2.WriteString(" DELETE FROM table2")
buf2.WriteString(" WHERE ID = ?")
_, err2 := o.Raw(buf2.String(), 34).Exec()
if err2 != nil {
o.Rollback()
return false, err2
}
var buf3 bytes.Buffer
buf3.WriteString(" DELETE FROM table3")
buf3.WriteString(" WHERE ID = ?")
_, err3 := o.Raw(buf3.String(), 123).Exec()
if err3 != nil {
o.Rollback()
return false, err3
}
o.Commit() //所有事物統一提交
return true, nil


注意!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。



 
粤ICP备14056181号  © 2014-2021 ITdaan.com