gpt4 book ai didi

postgresql - 使用 pg_bulkload 将新行加载到 PostgreSQL 时如何指定列

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

我正在尝试使用 pg_bulkload 项目将数百万行数据导入数据库。但是,所有新行都没有主键,并且在我的输入文件中只有几列中的两列可用。我如何告诉 pg_bulkload 我正在导入哪些列以及如何生成主键字段?我是否需要编辑我的导入文件以完全匹配 COPY 命令的输出并自行生成 id 字段?

例如,假设我的数据库列可能是:

id         title        body        published

我拥有的数据仅限于 titlepublished,并列在制表符分隔的文件中。我的 .ctl 文件如下所示:

TABLE = posts
INFILE = stdin
TYPE = CSV
DELIMITER = " "

最佳答案

您可以使用 pg_loader 的 FILTER 功能。像这样的东西:

在数据库中

CREATE FUNCTION pg_bulkload_filter(text, text) RETURNS record
AS $$
SELECT nextval('tablename_id_seq'), NULL, NULL, $1, $2, NULL
$$ LANGUAGE SQL;

在 pg_bulkload 控制文件中:

FILTER = pg_bulkload_filter

关于postgresql - 使用 pg_bulkload 将新行加载到 PostgreSQL 时如何指定列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3799724/

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