我正在学习创建 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
- 1 回答
- 0 关注
- 122 浏览
添加回答
举报
0/150
提交
取消