为了账号安全,请及时绑定邮箱和手机立即绑定

Golang 和 Postgres 的交互——每次查询都从 int64 表中减去 1

Golang 和 Postgres 的交互——每次查询都从 int64 表中减去 1

Go
慕沐林林 2023-03-21 15:31:13
我正在学习创建 HTTP API,我正在创建一个虚拟 API 信用系统,因为这是我特别感兴趣的。这就是我想出的:(我正在使用PQ 驱动程序)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 回答

?
眼眸繁星

TA贡献1873条经验 获得超9个赞

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



查看完整回答
反对 回复 2023-03-21
  • 1 回答
  • 0 关注
  • 122 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号