Javascript 在pg promise中使用帮助程序时如何设置列

Javascript 在pg promise中使用帮助程序时如何设置列,javascript,node.js,postgresql,pg,pg-promise,Javascript,Node.js,Postgresql,Pg,Pg Promise,由node.js开发。我正在使用 插入以下数据时出现问题 我想在下表中插入多行数据 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', myna

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

插入以下数据时出现问题

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

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])
}
这里,

1。当插入数据的键与不同时,无法插入。表的列名称?

我知道有pgp.helpers.ColumnSet()

错误:属性“id”不存在

同样的错误也会发生

我很好奇表列名和 列设置的列集

2。使用上述帮助程序时,如何在数据库中插入当前时间戳?

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

以下内容更正了您的所有问题:

const cs = new pgp.helpers.ColumnSet([
    {name: 'id', prop: 'myid'},
    {name: 'name', prop: 'myname'},
    {name: 'createdate', mod: '^', def: 'CURRENT_TIMESTAMP'}
], {
    table: 'info'
});
有关配置各个列的可用内容,请参见

当前时间戳的应用很难理解


它是一个名为
createdate
的列,具有默认值
CURRENT\u TIMESTAMP
和格式化修饰符
^
(与
:raw
)表示原始文本(无需转义)。除此之外,请键入详细说明。

非常感谢。我现在知道这是一个特性。然而,当前_时间戳的应用很难理解。我可以再问一点解释吗?我不知道如何初始化“rawText”。@hyeokluv在我的回答中没有
rawText
)您应该使用最新版本,它已简化;)作为对你问题的更详细的回答,我能够正确地使用它。pg promise是一个非常有用的模块。非常感谢。
const cs = new pgp.helpers.ColumnSet([
    {name: 'id', prop: 'myid'},
    {name: 'name', prop: 'myname'},
    {name: 'createdate', mod: '^', def: 'CURRENT_TIMESTAMP'}
], {
    table: 'info'
});
{name: 'createdate', mod: '^', def: 'CURRENT_TIMESTAMP'}