gpt4 book ai didi

postgresql - 将选定的列从 csv 文件复制到 postgres 表中

转载 作者:行者123 更新时间:2023-11-29 13:29:57 25 4
gpt4 key购买 nike

在 postgres 中 -我目前创建一个表并从 csv 文件复制数据(在下面我在 postgres 中创建确切的表,它对应于我的 csv 文件的表 - 所以列数相同) - 如下:

CREATE TABLE SupEnh_AGK50kb_K27ac (
EnhancerID_AGK50kb_K27ac character(80) NOT NULL,
Status_AGK50kb_K27ac character(15) NOT NULL,
Enrich_D_AGK50kb_K27ac float,
Enrich_R_AGK50kb_K27ac float,
Enrich_LR_AGK50kb_K27ac float,
Span_D_AGK50kb_K27ac float,
Span_R_AGK50kb_K27ac float,
Span_LR_AGK50kb_K27ac float,
Multiplication_D_AGK50kb_K27ac float,
Multiplication_R_AGK50kb_K27ac float,
Multiplication_LR_AGK50kb_K27ac float,
NumPeaks_D_AGK50kb_K27ac float,
NumPeaks_R_AGK50kb_K27ac float,
NumPeaks_LR_AGK50kb_K27ac float,
PVal_D_AGK50kb_K27ac float,
PVal_R_AGK50kb_K27ac float,
Pval_lr_AGK50kb_K27ac float,

CONSTRAINT AGK50kb_27ac_Key PRIMARY KEY (EnhancerID_AGK50kb_K27ac)
);

COPY SupEnh_AGK50kb_K27ac
FROM 'G:\CarrollLab\EnhancerAnalysis\AGK_K27ac.KeyFile'
WITH (FORMAT 'csv', DELIMITER E'\t', NULL 'NULL',HEADER);

这个过程就像一个魅力,但我想稍微修改它,所以我将能够首先创建我的 postgres 表的一个小版本 - 其中一个只包含前 5 列。然后我想直接从我的 csv 文件加载前 5 列。有没有办法稍微改变我在这里提供的代码,这样我就可以做我想做的事(并且不使用将在 postgres 上创建并将保存所有列的临时表)?多谢,罗伊

最佳答案

您可以使用 file_fdw访问 CSV 文件的外部数据包装器,这将允许您使用 SELECT INTO直接从 CSV 文件查询到表中。然后,您可以准确指定要保留的列。

示例:假设我有这个文本文件:

1,"apple","banana"
2,"pear","orange"

我只想在表格中包含前两列:

-- Do this once only per database, to create the extension and define the fdw server
CREATE EXTENSION file_fdw;
CREATE SERVER csvfile FOREIGN DATA WRAPPER file_fdw;

-- File must be accessible to the backend
-- All columns existing in the file must be present in the FDW table definition
CREATE FOREIGN TABLE mycsv(a integer, b text, c text)
SERVER csvfile OPTIONS ( filename '/tmp/test.csv', format 'csv');

-- Now we can copy into our actual table
-- ignoring column c
SELECT a,b INTO testtable FROM mycsv;

使用 SELECT INTO 为您创建新表。另一种方法是预先创建表并使用 INSERT INTO {table} SELECT {query}

关于postgresql - 将选定的列从 csv 文件复制到 postgres 表中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26347327/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com