go mysql事务

事务: 多个任务合起来称为一个事务

比如转账, 一个账户要增加钱, 另一个帐户要减少钱, 可能还有其它的关联任务

无论怎样, 至少是两个sql任务, 所以要保证这两个任务同时成功或同时失败, 则必须用到事务

事务最重要的就是原子性, 即多个任务同时成功或同时失败

事务操作:

开启事务 -- 执行多个任务(若失败, 则回滚) -- 提交事务

在go里面可使用第三方的库sqlx, 非常简便地操作mysql事务

conn, err := db.Begin()  -- 开启事务, 返回事务与数据库的"连结", 这个连结暂时代替原来的"连结", 用于操作数据库

conn.Rollback() -- 若事务失败, 则回滚

conn.Commit -- 提交事务

package main
import (
    "fmt"
    _ "github.com/go-sql-driver/mysql"			  // 数据库驱动
    "github.com/jmoiron/sqlx"                     // 导入第三方的sqlx
)
 
var db *sqlx.DB		// 与数据库的连结实例

type Person struct{
    Id int 			
    Name string		
    Sex string		
    Email string 	
}
 
/*在init中连结mysql*/
func init() {
    var err error
    db, err = sqlx.Open("mysql", "root:@tcp(127.0.
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值