簡體   English   中英

通過帶有數組值的 PSQL 導入 CSV 文件

[英]Import CSV file via PSQL With Array Values

我有一個非常簡單的表,我想將 CSV 中的數據插入其中。

create table products(
  id integer primary key,
  images text[]
);

這是我目前正在嘗試使用 csv 的內容:

1,"['hello.jpg', 'world.jpg']"
2,"['hola.jpg', 'mundo.jpg']"

當我執行以下操作時,我從 psql 收到語法錯誤,沒有其他信息可能出了什么問題。

\copy products 'C:\Users\z\Downloads\MOCK_DATA.csv' WITH DELIMITER ',';

有誰知道如何正確格式化我的數組值?

如果您從csv文件中刪除方括號,那么我將擁有這樣的表格( images作為text而不是text[] ):

create table products_raw
(
  id integer primary key,
  images text
);

加上這個觀點

create view products as 
  select id, ('{'||images||'}')::text[] as images 
  from products_raw;

並在以后使用該視圖。 無論如何,我寧願擁有這樣的 CSV 文件,沒有格式化,只有數據:

1,"hello.jpg,world.jpg"
2,"hola.jpg,mundo.jpg"

還值得考慮使用file_fdw將 csv 文件附加為 外部表 它有點復雜,但通常會帶來一些好處。

You can add headers to your CSV and use CSV to SQL converters like this and copy it to TEMPORARY TABLE and if the data does not need to be sanitized, then you are good to go. 如果您不使用pgAdmin ,請讓事情變得更方便。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM