代码挂起在golang中的stmt.Exec()事务上

代码挂起在golang中的stmt.Exec()事务上,go,Go,我面临一个奇怪的问题。在以下代码中,代码达到断点1,但未达到断点2。也没有错误。代码只是停留在那里,没有抛出任何错误 dbMaster := s.master tx, err := dbMaster.Begin() stmt, err := tx.Prepare("UPDATE service set status='deleted' where id=1") if err != nil { tx.Rollback() log.Printf("Error while prepa

我面临一个奇怪的问题。在以下代码中,代码达到断点1,但未达到断点2。也没有错误。代码只是停留在那里,没有抛出任何错误

dbMaster := s.master
tx, err := dbMaster.Begin()

stmt, err := tx.Prepare("UPDATE service set status='deleted' where id=1")
if err != nil {
    tx.Rollback()
    log.Printf("Error while preparing statement: %s\n", err)
}

defer stmt.Close()
fmt.Println("break point 1")
result, err := stmt.Exec()
fmt.Println("break point 2")
if err != nil {
    log.Printf("Error executing statement: %s\n", err)
}

您可能希望检查
tx处的错误,err:=dbMaster.Begin()
,但我猜如果失败,tx将为零(因此Prepare将死机)。可能是连接问题,超时时间很长(或无限长)。您解决过这个问题吗?