PG数据库如何获取库中的全部表名?
3、执行psql命令导出目标数据库的表名:psql -h 数据库IP地址 -p 端口号 -U 用户名 -d 数据库名 -c "SELECT tablename FROM pg_tables WHERE schemaname = 'public' order by tablename;7、导出的表名(左图),前后都带有竖线。2、将数据库的用户密码,设置为环境变量:set PGPASSWORD=你的数
提供两种方法:
方法一:本地有安装PG数据库,存在PG组件
1、打开命令提示符
2、将数据库的用户密码,设置为环境变量:set PGPASSWORD=你的数据库用户密码
3、执行psql命令导出目标数据库的表名:psql -h 数据库IP地址 -p 端口号 -U 用户名 -d 数据库名 -c "SELECT tablename FROM pg_tables WHERE schemaname = 'public' order by tablename;" -t > 目标路径\table_names.txt


方法二:本地没有安装PG数据库
前提条件:安装了DBeaver和Git(windows系统运行sh脚本所需),并成功连接目标数据库
1、DBeaver连接数据库
2、打开sql编辑器或工作台

3、执行sql:SELECT tablename FROM pg_tables WHERE schemaname = 'public' order by tablenam

4、根据查询结果,导出表名(如图所示)

5、导出文件选择txt,方便后续脚本提取完整的表名,然后一直点击【下一步】

6、目录和文件名称自定义,然后下一步,并进行导出

7、导出的表名(左图),前后都带有竖线。可用右图中的脚本提取仅包含表名的数据(脚本见文章末尾)。


8、导出文件的目录下空白处右键,点击“Open Git Bash here”

9、执行命令:bash sh脚本文件名

执行完成后,输出的文件中去除了竖线,仅包含表名

去除表名两边竖线的脚本:
#!/bin/bash
# 输入文件名
input_file="pg_tables_202507071045.txt"
# 输出文件名
output_file="output.txt"
# 检查输入文件是否存在
if [ ! -f "$input_file" ]; then
echo "输入文件 $input_file 不存在!"
exit 1
fi
# 使用awk提取竖线之间的字符串并去除前后空格
awk -F'\|' '{
# 去除字段前后的空格
gsub(/^[[:space:]]+|[[:space:]]+$/, "", $2)
# 打印第二个字段(竖线之间的内容)
if ($2 != "") {
print $2
}
}' "$input_file" > "$output_file"
echo "提取完成,结果已保存到 $output_file"
DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐

所有评论(0)