【发布时间】:2020-07-08 11:50:14
【问题描述】:
我正在尝试使用 ColumnSet 帮助程序来生成插入和更新查询,但是我有一个列,如果传入,我想使用 pg-promise query-formatter 格式化数据,否则默认为:raw (^) ,在本例中为 now()。
代码示例如下:
const cs = new helpers.ColumnSet([
'lastname',
{
name: 'rental_date',
mod: '^',
def: 'now()'
}
], { table: { table: 'book_rental', schema: 'public' } })
let rental1 =
{
lastname: 'Mueller', rental_date: '2020-05-01T12:15:063Z'
};
let rental2 =
{
lastname: 'Smith'
};
let insert = helpers.insert(rental1, cs)
db.result(insert)
.then(data => res.json({ message: 'Ok!' }))
.catch(err => res.json({ message: 'Not ok!' }))
Rental1 应INSERT INTO (last_name, rental_date) VALUES ('Mueller', '2020-05-01T12:15:063Z' ),而Rental2 应INSERT INTO (last_name, rental_date) VALUES ('Smith', now() )。但是,这会引发错误,因为 Rental1 也被格式化为 :raw。
这可能是一个常见的用例,所以我可能会遗漏一些东西......我如何使用帮助器实现这一点,以便只有在触发默认值时才使用 :raw 模式?
【问题讨论】:
标签: pg-promise