在PostgreSQL中更新或删除行的问题

时间:2019-07-16 06:39:22

标签: postgresql go

我使用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)

}

请分享任何想法

0 个答案:

没有答案