如何在 DBD::P g 中使用 pg_putcopydata 插入空值



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

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

有些记录中,其中一个字段可能是 emtpy。为了插入空值,我尝试在pg_putcopydata中使用"undef","Null","null","NULL"。他们都没有工作。

如何使用 pg_putcopydata 插入 NULL 值?

要包含 NULL,您必须使用文本插入,用文本模式标识 null,例如 N .这可以在COPY命令语法中指定,例如

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

然后

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

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


这看起来像美国农业部数据库.如果是这样,这是我之前写的答案。

相关内容

  • 没有找到相关文章

最新更新