将多个值插入 PostgreSQL - pg

Inserting multiple values to PostreSQL - pg

我有 2 个变量:

let x = 2;
let y = [1,3,4];

我想将此数据写入用户 table,如下所示:

user1 - user2
+---+---+
| 2 | 1 |
+---+---+
| 2 | 3 |
+---+---+
| 2 | 4 |
+---+---+

我有一个客户端对象来进行查询,但我不知道如何给值和查询?:

Client.query("INSERT INTO users (user1, user2) VALUES (, )", []);

是这样的吗?

INSERT INTO users (user1, user2)
SELECT  2 AS user1
    ,   UNNEST(ARRAY[1,3,4]) AS user2;

我不熟悉node.js,帮不了你。

一种可能的方法,在 sql-语句中使用@FrankHeikens 可靠的答案;)

pgconfig.json:

{"user":"myUSerDB","host":"10.220.100.102","database":"mydb","password":"mySuperStrongPassword","port":"5432"}

node-pg-sql.js:

var fs = require('file-system');
var fileNameConfigPGSQL = require('./config/pgconfig.json');

const { Pool } = require('pg');

const pool = new Pool(fileNameConfigPGSQL);

module.exports = {
  query: (text, params, callback) => {
    const start = Date.now()
    return pool.query(text, params, (err, res) => {
      const duration = Date.now() - start
  //    console.log('executed query', { text, duration, rows: res.rowCount })
      callback(err, res)
    })
  },
  getClient: (callback) => {
    pool.connect((err, client, done) => {
      const query = client.query.bind(client)

      // monkey patch for the querie method to return last query
      client.query = () => {
        client.lastQuery = arguments
        client.query.apply(client, arguments)
      }

      // Timeout of 5 secs
      const timeout = setTimeout(() => {
     //   console.error('A client has been checked out for more than 5 seconds!')
     //   console.error(`The last executed query on this client was: ${client.lastQuery}`)
      }, 5000)

      const release = (err) => {
        // calling 'done' method - returns client to the pool
        done(err)

        // Clear Timeouts
        clearTimeout(timeout)

        // Reset query before the Monkey Patch
        client.query = query
      }

      callback(err, client, done)
    })
  }
}

someNodeModule.js

const db = require('../../../node-pg-sql');
....
...
..
let x = 2;
let y = [1,3,4];
let sqlInsert=`INSERT INTO users (user1, user2)
SELECT ${x} AS user1
    ,   UNNEST(ARRAY${y}) AS user2;`
db.query(sqlInsert, (errÌnsert, resInsert) => {
   if (errÌnsert) {
     // handle error
   }
   else {
     // handle success
   }
})