sql - 从 ASSERT 下的 SQL 脚本执行 BASH 脚本
问题描述
目标是在 SQL 脚本中的断言之后执行脚本hi.sh。
hi.sh包含:
#!/bin/bash
echo 'Hello World'
我正在尝试在 DO 中执行hi.sh:
DO $$
BEGIN
ASSERT EXISTS (SELECT * FROM pg_catalog.pg_tables WHERE schemaname = 'public'), '"Public" schema is empty';
\! ./hi.sh
END$$;
它应该引发错误'“公共”模式为空'并且不执行hi.sh但是一旦公共模式中有条目,必须执行hi.sh。
运行 sql 脚本会引发错误:
psql:assert.sql:5: ERROR: syntax error at or near "\"
LINE 4: \! ./hi.sh
^
但是,它会执行一次 shell 脚本 '\!' 行在 DO 之外,如下所示:
\! ./hi.sh
我们如何创建一个简单的 SQL 脚本来基于断言执行hi.sh ?
解决方案
推荐阅读
- python - Pandas 创建一个框架,其条目是应用于其他 DataFrame 的相应条目的函数的值
- wordpress - Wordpress,限制页面和内容访问具有特定角色的登录用户
- django - 如何在 django 令牌身份验证中检查用户是否已登录?
- loops - 带有用户输入的小循环 unix
- php - php mongodb 验证表单密码
- sql - 左连接命令未显示所有结果
- react-native - 处理 useEffect
- javascript - 将 Google Tag Manager 与 Google Analytics 结合使用来跟踪 Chrome 扩展程序 (2020)
- list - 如何将列表添加到地图
> 动态 - android - Recyclerview 项目 OnTouchListener