【发布时间】:2015-04-25 21:02:41
【问题描述】:
我正在尝试通过 Knex.js 生成如下查询:
INSERT INTO table ("column1", "column2")
SELECT "someVal", 12345
WHERE NOT EXISTS (
SELECT 1
FROM table
WHERE "column2" = 12345
)
基本上,我只想在特定值不存在时才插入值。但是 Knex.js 似乎不知道如何做到这一点;如果我调用knex.insert()(没有值),它会生成一个“插入默认值”查询。
我尝试了以下方法:
pg.insert()
.into(tableName)
.select(_.values(data))
.whereNotExists(
pg.select(1)
.from(tableName)
.where(blah)
);
但这仍然只是给了我默认值的东西。我尝试添加.columns(Object.keys(data)),希望insert() 能够兑现这一点,但没有运气。
是否可以使用 knex 生成我想要的查询,还是我只需要构建一个原始查询,而不使用 Knex.js 方法?
【问题讨论】:
标签: javascript node.js knex.js