首页 > 解决方案 > 为什么从数据库中删除一些数据后它没有插入到同一个表中

问题描述

我遇到了一个奇怪的问题,从一个表中删除数据后,无法再次插入表中。

这是一个例子

我正在使用 postgres 数据库

_, err = con.Query(`
    DELETE FROM loan_aims WHERE _loan = $1;
`, input.ID)
if err != nil {
    tx.Rollback()
    log.Println(err)
    return false, fmt.Errorf("can not delete additional data from loan_aims")
}

   stmtAim, err := con.Prepare(`INSERT INTO loan_aims(_loan,_aim) VALUES ($1,$2)`)
if err != nil {
    tx.Rollback()
    log.Println(err)
    return false, fmt.Errorf("can not insert into loan_aims")
}

 for i := 0; i < len(aims); i++ {
    _, err := stmtAim.Exec(loanID, aims[i])

    if err != nil {
        tx.Rollback()
        return false, fmt.Errorf("can not insert aim 2")
    }
} 

我试图删除这个

_, err = con.Query(`
    DELETE FROM loan_aims WHERE _loan = $1;
`, input.ID)
if err != nil {
    tx.Rollback()
    log.Println(err)
    return false, fmt.Errorf("can not delete additional data from loan_aims")
}

它工作得很好

标签: go

解决方案


通常,您应该使用db.Exec()for DELETE

_, err = db.Exec("delete from foo")
if err != nil {
    log.Fatal(err)
}

推荐阅读