postgreSQL错误:“约束不存在”(但它确实存在...)

时间:2019-08-24 15:38:31

标签: javascript postgresql node-postgres

我有一个要更新的数据库,但我不知道为什么我收到关于一个不存在的列的奇怪错误的信息。当我使用“ heroku pg:psql”访问数据库时,我完全可以看到该列。我发现其他couplequestions也有类似的问题,但无法解决。

这是我的代码,用于执行INSERT ... ON CONFLICT WITH CONSTRAINT ...有什么想法吗?

const text = 'INSERT INTO "test2" '
+'(route_id, secupdated, retrievedate, traintimeday) '
+'VALUES($1, $2, $3, $4) '
+'ON CONFLICT ON CONSTRAINT traintimeday '
+'DO UPDATE SET (secupdated, secarrival) = (excluded.secupdated, excluded.secarrival) '
+'RETURNING *' ; 
const values = [train_id 
, Math.round(dateNow.getTime()/1000)
, Math.round(dateNow.getDate())
, Math.round(dateNow.getDate()) + stu.stop_id
]; 
pool.query(text, values, (err, res) => {
if (err) {
throw err;
}
console.log('user:', res.rows[0])
})

错误消息说“约束traintimeday不存在”

1 个答案:

答案 0 :(得分:2)

如果traintimeday不是约束,则代替:

+'ON CONFLICT ON CONSTRAINT traintimeday '

使用:

+'ON CONFLICT (traintimeday) '