请问老师,如何加事务锁和回滚?

老师您好,我这里想对两张表进行新增和修改的操作,使用教程中的方法,可以成功添加。但是现在想要给这一系列操作加一个事务锁,任何报错都可以可以回滚表,想请教您一下,如果在教程的基础上,该如何写呢?谢谢老师!

    //查看people是否存在
    peopleModel := people.IdcardMd5GetPeople(idcard_md5)

    if peopleModel.ID > 0 {
        peopleModel.Photo = photo_url
        rowsAffected := peopleModel.Save()
        if rowsAffected == 0 {
            response.Fail(c, make([]int, 0), "注册失败")

        }

    } else {
        peopleModel = people.People{
            Name:       name_des,
            Idcard:     idcard_des,
            Idcard_md5: idcard_md5,
            Photo:      photo_url,
        }
        peopleModel.Create()
        if peopleModel.ID == 0 {
            response.Fail(c, make([]int, 0), "注册失败")
        }
    }
    _user := user.User{
        People_id:   peopleModel.ID,
        Open_id:     request.Openid,
        Session_key: request.Sessionkey,
        Phone:       phone_des,
    }
    _user.Create()
    if _user.ID > 0 {
        response.Data(c, peopleModel.ID)
    } else {
        response.Fail(c, make([]int, 0), "创建用户失败")
    }
讨论数量: 1

查看 GORM 文档啊

1年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!