如何使用 node-postgres 插入多行?
How to insert multiple rows using node-postgres?
这是我的声明:
INSERT INTO userpermissions (username, permission)
VALUES (, ),(,)
RETURNING *;
这是我的代码:
db.query(stmt2,values2, (err2, result2) => {
//Do other stuff depending on if there is an error or result
}
其中stmt2是上面的语句,values2是我创建的数组:
var values2 = [];
for(i=0;i<permissions.length;i++){
values2.push(username);
values2.push(permissions[i]);
}
存在某种错误/致命异常,但我看不到它,因为错误的域被换行了。
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(, ),(,) 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)
这是我的声明:
INSERT INTO userpermissions (username, permission)
VALUES (, ),(,)
RETURNING *;
这是我的代码:
db.query(stmt2,values2, (err2, result2) => {
//Do other stuff depending on if there is an error or result
}
其中stmt2是上面的语句,values2是我创建的数组:
var values2 = [];
for(i=0;i<permissions.length;i++){
values2.push(username);
values2.push(permissions[i]);
}
存在某种错误/致命异常,但我看不到它,因为错误的域被换行了。
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(, ),(,) 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)