将可变数据数组插入PostgreSQL列

时间:2019-02-18 22:30:51

标签: node.js postgresql node-postgres

由于某种原因,目前有brain.exe的缺点。

我正在使用Node.js和node-postgres查询我的数据库。

基本上,我正在尝试将文本数组插入PostgreSQL列中。

使用JSON.stringify()记录数组,如下所示:

["id1","id2","id3"]

我将能够

'INSERT INTO table (array) VALUES ($1)' [data]'

(极其简化-数据数组的长度是可变的)

1 个答案:

答案 0 :(得分:0)

这是解决方案:

import { pgclient } from '../../db';

(async function test() {
  try {
    await pgclient.connect();
    // create table
    await pgclient.query(`
      CREATE TABLE IF NOT EXISTS my_table (
        id serial PRIMARY KEY,
        arr varchar[]
      )
    `);
    // test
    const array = ['id1', 'id2', 'id3'];
    await pgclient.query(`INSERT INTO my_table (arr) VALUES ($1)`, [array]);
  } catch (error) {
    console.log(error);
  } finally {
    pgclient.end();
  }
})();

执行上述代码后,检查数据库:

node-sequelize-examples=# select * from "my_table";
 id |      arr
----+---------------
  1 | {id1,id2,id3}
(1 row)