gpt4 book ai didi

perl - 如何在 DBD::Pg 中使用 pg_putcopydata 插入空值?

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

我正在用数百万条记录填充一个 postgres 表。为了加快这个过程,我使用了 DBD:Pg 中的 pg_putcopydata。我正在关注这个例子:

$dbh->do("COPY mytable(flavor, slices) FROM STDIN WITH DELIMITER '~'");
$dbh->pg_putcopydata("Pepperoni~123\n");
$dbh->pg_putcopydata("Mushroom~314\n");
$dbh->pg_putcopydata("Anchovies~6\n");
$dbh->pg_putcopyend();

有些记录的其中一个字段可能为空。为了插入空值,我尝试在 pg_putcopydata 中使用“undef”、“Null”、“null”、“”、“NULL”。它们都不起作用。

如何使用 pg_putcopydata 插入 NULL 值?

最佳答案

要包含 NULL,您必须使用文本插入,用文本模式识别 null,例如\N。这可以在 COPY command syntax 中指定,例如

COPY ... FROM ... WITH (DELIMITER '~', NULL '\N')

然后

$dbh->pg_putcopydata("NoSuchFood~\\N\n");

(将反斜杠加倍以生成发送到 Pg 的文字反斜杠)。


这看起来像 USDA database .如果是这样,here's an answer I wrote earlier .

关于perl - 如何在 DBD::Pg 中使用 pg_putcopydata 插入空值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27126485/

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