如何在shell脚本中顺序运行两个sql命令

如何在shell脚本中顺序运行两个sql命令

我想按顺序运行两个 sql 命令,但我无法实现它。

这是我的 shell 脚本

#! /bin/bash

gsutil cp gs://api-bucket-germany/order_status.csv ./order_status.csv

psql -d apidbgermany -U apidbgermany << EOF

DELETE FROM apidbgermany.order_status
\copy apidbgermany.order_status from './order_status.csv' delimiter ',' CSV;
EOF

它正在执行复制然后删除。

答案1

它很可能会一起失败;您;在声明末尾缺少 a DELETE。尝试:

#! /bin/bash

gsutil cp gs://api-bucket-germany/order_status.csv ./order_status.csv

psql -d apidbgermany -U apidbgermany << EOF

DELETE FROM apidbgermany.order_status;
\copy apidbgermany.order_status from './order_status.csv' delimiter ',' CSV;
EOF

对于调试脚本,通常首先通过连接和剪切并粘贴脚本来手动运行命令,sql以确保它在脚本中尝试之前可以正常工作,这通常会很有帮助。

相关内容