如何使用node-postgres插入多行?
这是我的陈述:
INSERT INTO userpermissions (username, permission) VALUES ($1, $2),($3,$4) RETURNING *;
这是我的代码:
db.query(stmt2,values2, (err2, result2) => { //Do other stuff depending on if there is an error or result }
其中stmt2是上面的语句,而values2是我创build的数组:
var values2 = []; for(i=0;i<permissions.length;i++){ values2.push(username); values2.push(permissions[i]); }
有一些错误/致命的exception,但我不能看到它,因为错误的域被包装。
SQL:
f=# create table tt(i int,t text); CREATE TABLE f=# grant all on tt to t; GRANT
JS:
const { Pool, Client } = require('pg') const client = new Client({ user: 't', host: '10.10.10.10', database: 'f', password: 't', port: 5432 }) client.connect() client.query('INSERT INTO tt(i, t) VALUES($1, $2),($3,$4) RETURNING *', ['1', 'SO',2,'sO'], (err, res) => { console.log(err, res) client.end() })
跑:
C:\Users\Vao\vatest>node t.js null Result { command: 'INSERT', rowCount: 2, oid: 0, rows: [ anonymous { i: 1, t: 'SO' }, anonymous { i: 2, t: 'sO' } ], fields: [ Field { name: 'i', tableID: 131471390, columnID: 1, dataTypeID: 23, dataTypeSize: 4, dataTypeModifier: -1, format: 'text' }, Field { name: 't', tableID: 131471390, columnID: 2, dataTypeID: 25, dataTypeSize: -1, dataTypeModifier: -1, format: 'text' } ], _parsers: [ [Function: parseInteger], [Function: noParse] ], RowCtor: [Function: anonymous], rowAsArray: false, _getTypeParser: [Function: bound ] }
最后检查:
f=# select * from tt; i | t ---+---- 1 | SO 2 | sO (2 rows)