gpt4 book ai didi

sql - 在 KnexJS 中更新插入

转载 作者:行者123 更新时间:2023-11-29 11:12:34 25 4
gpt4 key购买 nike

我在 PostgreSQL 中有一个更新插入查询,例如:

INSERT INTO table
(id, name)
values
(1, 'Gabbar')
ON CONFLICT (id) DO UPDATE SET
name = 'Gabbar'
WHERE
table.id = 1

我需要对这个更新插入查询使用 knex。如何解决这个问题?

最佳答案

所以我使用来自 Dotnil's answer on Knex Issues Page 的以下建议解决了这个问题:

var data = {id: 1, name: 'Gabbar'};
var insert = knex('table').insert(data);
var dataClone = {id: 1, name: 'Gabbar'};

delete dataClone.id;

var update = knex('table').update(dataClone).whereRaw('table.id = ' + data.id);
var query = `${ insert.toString() } ON CONFLICT (id) DO UPDATE SET ${ update.toString().replace(/^update\s.*\sset\s/i, '') }`;

return knex.raw(query)
.then(function(dbRes){
// stuff
});

希望这对某人有帮助。

关于sql - 在 KnexJS 中更新插入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38659158/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com