Почему после удаления некоторых данных из базы данных они не вставляются в те же таблицы? - PullRequest
0 голосов
/ 09 февраля 2019

Я столкнулся со странной проблемой, после удаления данных из одной таблицы невозможно вставить их снова в таблицу.

вот пример

Я использую Postgres DB

_, 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")
}

, и он работает просто отлично

1 Ответ

0 голосов
/ 09 февраля 2019

Как правило, вы должны использовать db.Exec() для DELETE.

_, err = db.Exec("delete from foo")
if err != nil {
    log.Fatal(err)
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...