Hubert 'depesz' Lubaczewski:等待 PostgreSQL 17 —— 添加新的 COPY 选项 LOG_VERBOSITY。

💡 原文英文,约400词,阅读约需2分钟。
📝

内容提要

2024年4月1日,Masahiko Sawada提交了一个补丁,添加了一个新的COPY选项LOG_VERBOSITY,用于控制处理过程中发出的消息数量。有效值为'default'和'verbose'。当ON_ERROR选项设置为ignore时,在COPY FROM中使用。指定'verbose'时,会为每个丢弃的行发出一个NOTICE消息,提供额外的信息,帮助用户识别加载失败的有问题的行。

🎯

关键要点

  • 2024年4月1日,Masahiko Sawada提交了一个补丁,添加了新的COPY选项LOG_VERBOSITY。
  • LOG_VERBOSITY选项控制处理过程中发出的消息数量,有效值为'default'和'verbose'。
  • 该选项在COPY FROM中使用,当ON_ERROR选项设置为ignore时生效。
  • 指定'verbose'时,会为每个丢弃的行发出NOTICE消息,提供额外信息,帮助用户识别加载失败的行。
  • COPY在PostgreSQL 17中将更加强大,支持错误处理和实时通知问题。
  • 测试表x包含一些损坏的数据,尝试加载时会出现错误,未加载任何数据。
  • 使用ON_ERROR IGNORE选项和LOG_VERBOSITY后,可以跳过不兼容的数据行,并提供详细的通知信息。
  • 最终结果显示,成功加载了部分数据,跳过了不兼容的行。

延伸问答

LOG_VERBOSITY选项的作用是什么?

LOG_VERBOSITY选项用于控制COPY过程中发出的消息数量,帮助用户识别加载失败的行。

在使用COPY时,如何处理错误行?

可以使用ON_ERROR IGNORE选项来跳过不兼容的数据行,并结合LOG_VERBOSITY选项提供详细的通知信息。

使用LOG_VERBOSITY时会有什么输出?

指定'verbose'时,会为每个丢弃的行发出NOTICE消息,提供额外信息,如行号、列名和错误值。

PostgreSQL 17中的COPY功能有什么新特性?

PostgreSQL 17中的COPY功能增强了错误处理能力,并支持实时通知问题。

如何测试COPY功能的错误处理?

可以创建一个包含损坏数据的测试表,并尝试加载数据,观察错误处理和通知输出。

在COPY操作中,如何指定使用LOG_VERBOSITY?

在COPY命令中,可以通过在选项中添加(log_verbosity verbose)来指定使用LOG_VERBOSITY。

➡️

继续阅读