💡 原文英文,约1400词,阅读约需5分钟。
📝

内容提要

本文介绍了如何使用bash中的coproc功能来控制psql。通过将psql作为coprocess启动,可以将命令发送到psql并获取结果。此外,还介绍了如何使用coprocess来实现更高级的错误处理和与其他进程的同步。

🎯

关键要点

  • 本文介绍了如何使用bash中的coproc功能来控制psql。
  • coproc是一个异步执行的子进程,允许在shell和coprocess之间建立双向管道。
  • 使用coproc可以实现更高级的错误处理和与其他进程的同步。
  • 在没有coproc的情况下,可以使用psql的-c选项或-f选项来执行SQL命令。
  • 可以通过here-document语法将SQL命令嵌入到shell脚本中。
  • 使用coproc启动psql后,可以通过向${PSQL[1]}写入命令并从${PSQL[0]}读取结果来与psql交互。
  • 为了获取每个命令的结果,脚本需要处理输出并使用结束标记来识别结果的结束。
  • 通过访问SQLSTATE,可以实现细粒度的错误处理,处理可重试的事务。
  • psql作为coprocess的另一个用例是与其他程序同步命令,特别是在处理压缩文件时。
  • 使用GNU tar的--to-command选项可以将文件内容流式传输到psql,避免了中间磁盘空间的问题。
🏷️

标签

➡️

继续阅读