gpt4 book ai didi

javascript - 在 pg-promise 中使用助手时如何设置列

转载 作者:行者123 更新时间:2023-11-29 13:18:02 24 4
gpt4 key购买 nike

由 node.js 开发。我正在使用 pg-promise .

插入以下数据时出现问题。

我想在下表中插入多行数据。

create table info (
id varchar(20) not null,
name varchar(20) not null,
createdate timestamp with time zone not null
)

我在下面插入了数据。

let info = [
{ myid: '0001', myname: 'name1' },
{ myid: '0002', myname: 'name2' },
{ myid: '0003', myname: 'name3' },
]

我最初插入了以下内容。

for (let i = 0; i <info.length; i ++) {
db.none (`INSERT INTO info (id, name, createdate ') VALUES ($1, $2, CURRENT_TIMESTAMP)`, [info[i].id, info[i].name])
}

我想使用 pg-promise 正确修复它。

const dataMulti = info
const cs = new pgp.helpers.ColumnSet(
[
'id',
'name',
'createdate',
], {
table: 'info',
})
await db.none(pgp.helpers.insert(dataMulti, cs))

这里,

<强>1。当插入数据的键与 不同时无法插入。表的列名?

I know there is pgp.helpers.ColumnSet()

Error: Property 'id' does not exist.

The same error occurs.

I am curious about the relationship between table column names and ColumnSets for column settings.

<强>2。使用上述帮助程序时,如何将当前时间 current_timestamp 插入数据库?

感谢您对这两个问题的回答。

最佳答案

以下ColumnSet纠正你所有的问题:

const cs = new pgp.helpers.ColumnSet([
{name: 'id', prop: 'myid'},
{name: 'name', prop: 'myname'},
{name: 'createdate', mod: '^', def: 'CURRENT_TIMESTAMP'}
], {
table: 'info'
});

参见 Column了解可用于配置各个列的内容。

the application of CURRENT_TIMESTAMP is difficult to understand...

{name: 'createdate', mod: '^', def: 'CURRENT_TIMESTAMP'}

它是一个名为 createdate 的列,具有默认值 CURRENT_TIMESTAMP 和格式修饰符 ^(与 :raw 相同),这意味着原始文本(不需要转义)。除此之外,Column类型详细解释。

关于javascript - 在 pg-promise 中使用助手时如何设置列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46260641/

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