我有一个要更新的数据库,但我不知道为什么我收到关于一个不存在的列的奇怪错误的信息。当我使用“ heroku pg:psql”访问数据库时,我完全可以看到该列。我发现其他couple个questions也有类似的问题,但无法解决。
这是我的代码,用于执行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不存在”
答案 0 :(得分:2)
如果traintimeday
不是约束,则代替:
+'ON CONFLICT ON CONSTRAINT traintimeday '
使用:
+'ON CONFLICT (traintimeday) '