我使用PostgreSQL v11.01
创建了golang Web api。一切正常,但有时我遇到数据库问题。当我尝试删除或更新数据库中的某些行时,进入恢复模式的数据库和我尝试更新或删除的行均不受影响。在随机表中随机发生此问题。
第一次,我认为我的代码存在一些问题,我用事务重写了它,但对我没有帮助。 当我尝试使用DBForge更新行时,该应用程序也挂起。
我还认为这是golang中并发性的问题,我也重写了没有并发性的代码。没有帮助。
数据库还配置为使用多线程。
这是我要删除的端点控制器:
var DeleteAntenna = func(res http.ResponseWriter, req *http.Request) {
antenna_id := req.URL.Query().Get("antenna_id")
tx, err := database.DB.Begin()
if err != nil {
fmt.Println(err.Error())
http.Error(res, err.Error(), 400)
tx.Rollback()
return
}
_, err = tx.Exec("UPDATE new_rollout_managment.cell SET antenna_id = NULL WHERE antenna_id = $1;", antenna_id)
if err != nil {
fmt.Println(err.Error())
http.Error(res, err.Error(), 400)
return
}
_, err = tx.Exec(`DELETE FROM "new_rollout_managment".antenna WHERE id = $1;`, antenna_id)
if err != nil {
fmt.Println(err.Error())
http.Error(res, err.Error(), 400)
tx.Rollback()
return
}
defer tx.Commit()
resp := u.Message(true, "Deleted")
resp["Deleted_antenna"] = antenna_id
u.Respond(res, resp)
}
请分享任何想法