登录
首页 >  Golang >  Go问答

每次从Golang向Postgres发送查询时,int64表中的值减去1

来源:stackoverflow

时间:2024-03-27 19:57:28 493浏览 收藏

一分耕耘,一分收获!既然都打开这篇《每次从Golang向Postgres发送查询时,int64表中的值减去1》,就坚持看下去,学下去吧!本文主要会给大家讲到等等知识点,如果大家对本文有好的建议或者看到有不足之处,非常欢迎大家积极提出!在后续文章我会继续更新Golang相关的内容,希望对大家都有所帮助!

问题内容

我正在学习创建 http api,

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

这就是我想出的:(我正在使用 pq 驱动程序)

if !dummy.creds <= 0 {
    c.json(404, gin.h{
        "success": false,
        "message": "no credits!",
    })
    return
}

但是,假设我编辑 sql 表为 50 credits,如何在每次查询虚拟 api 时减去 1 credits?

例如,如果我查询 api 并且它从 sql 表中返回成功的虚拟数据(json 格式),我如何减去一个学分,这样我只有 49 个学分,然后是 48、47、46,等等

更新:这就是我想出的

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

}

它不但没有工作,而且什么也没做。

我做错了什么?

任何对此的答案和知识都将是令人惊奇的!

谢谢!


解决方案


由@seva发布

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

以上就是《每次从Golang向Postgres发送查询时,int64表中的值减去1》的详细内容,更多关于的资料请关注golang学习网公众号!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>