💡
原文英文,约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,避免了中间磁盘空间的问题。
➡️