首页 > 解决方案 > 如何更改 postgresql 数组的默认分隔符?

问题描述

我想将带有 Postgres 数组的 csv 导入 Postgres 表。

这是我的桌子:

create table dbo.countries (
    id char(2) primary key,
    name text not null,
    elements text[]
    CONSTRAINT const_dbo_countries_unique1 unique (id),
    CONSTRAINT const_dbo_countries_unique2 unique (name)
);

我想插入一个看起来像这样的csv:

AC,ac,{xx yy}

当我键入时copy dbo.mytable FROM '/home/file.csv' delimiter ',' csv;,数组被读取为一个字符串:{"xx yy"}

如何将数组的默认分隔符从更改,

标签: postgresql

解决方案


您不能更改数组的分隔符。您可以将数据读取到表中,稍后您可以在此表上运行更新:

UPDATE dbo.countries
  SET elements = string_to_array(elements[1], ' ')
 WHERE strpos(elements[1], ' ') > 0;

推荐阅读