Golang和Postgres互动-从int64表中减去1每个查询

时间:2018-08-16 21:14:11

标签: postgresql go go-gin glide-golang

我正在学习创建HTTP API,

我正在创建一个虚拟的API信用系统,因为这正是我特别感兴趣的。

这是我想出的:(我正在使用PQ Driver

if !dummy.creds <= 0 {
    c.JSON(404, gin.H{
        "success": false,
        "message": "No Credits!",
    })
    return
}

但是,假设我编辑SQL表以说50个信用,每次查询虚拟API时如何减去1个信用?

因此,例如,如果我查询API并从SQL表返回成功的伪数据(以JSON格式),我该如何减去一个积分,这样我只有49个积分,然后是48、47、46,等等

更新:这就是我想出的

_, err := db.Exec("UPDATE dummy SET creds = -1 WHERE email = $1")
if err != nil {
    log.Fatal(err)

}

它没有执行任何操作。

我在做什么错了?

任何答案和知识都将是惊人的!

谢谢!

1 个答案:

答案 0 :(得分:0)

由@seva发布

  

我认为问题在于返回一致的结果。那不是要走了关于数据库。搜索“乐观锁定”与“悲观锁定”,“选择更新”等。这也是在go中使用数据库的基本(但很好的)介绍(如果需要):go-database-sql.org/index .html