【问题标题】:Using loop to insert array type of data in PostgreSQL使用循环在PostgreSQL中插入数组类型的数据
【发布时间】:2021-03-21 15:45:24
【问题描述】:

我想使用循环将数组数据equip 插入到表中。

var svr = 1;
var equip = [3, 4, 5];

为此,我需要插入数据 3 次。

看起来像这样:

INSERT INTO khnp.link_server_equipment_map(svr, equip)
VALUES (1, 3);

INSERT INTO khnp.link_server_equipment_map(svr, equip)
VALUES (1, 4);

INSERT INTO khnp.link_server_equipment_map(svr, equip)
VALUES (1, 5);

有人能把我从这个兔子洞里救出来吗?谢谢

【问题讨论】:

    标签: arrays postgresql loops


    【解决方案1】:

    你可以试试 unnest:

    INSERT INTO khnp.link_server_equipment_map(svr, equip) 
    VALUES (1,  UNNEST(ARRAY[3, 4, 5]));`
    

    【讨论】:

      【解决方案2】:

      您可以使用INSERT 语句插入多行。

      INSERT INTO table_name (column_list)
      VALUES
          (value_list_1),
          (value_list_2),
          ...
          (value_list_n);
      

      根据您提到的数据示例,行插入将以这种方式完成

         INSERT INTO khnp.link_server_equipment_map(svr, equip) VALUES
           (1, 3),
           (1, 4),
           (1, 5);
      

      另外为了避免一一添加数组内容可以使用UNNESTarray function.

      【讨论】:

        猜你喜欢
        • 2013-06-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多