检查现有行,如果不存在则在postgres中创建新条目

时间:2020-03-08 21:45:00

标签: sql postgresql go sql-update sql-insert

我想对准备好的语句做些什么:

  • 如果已有数据集,则更新计数器值
  • 或在没有数据的情况下创建一个新数据。

因为我是编写纯SQL的新手,所以我想知道必须进行哪些更改才能使其正常工作。通过以下语句,我得到了错误

pq:“ IF”处或附近的语法错误

txn, err := db.Begin()


stmt, err := db.Prepare(`IF EXISTS(SELECT * FROM something WHERE day=? AND month=?) THEN UPDATE something SET counter = counter+1 WHERE day=? AND month=? ELSE INSERT INTO something (day,month,counter) VALUES (?,?,?) END IF`)

_, err = stmt.Exec(fli.TimeLocal.Day(), fli.TimeLocal.Month(),fli.TimeLocal.Day(), fli.TimeLocal.Month(),fli.TimeLocal.Day(), fli.TimeLocal.Month(),1)

_, err = stmt.Exec()
if err != nil {
    log.Fatal(err)
}

err = stmt.Close()
if err != nil {
    log.Fatal(err)
}

err = txn.Commit()
if err != nil {
    log.Fatal(err)
}

0 个答案:

没有答案