提供两种方法:

方法一:本地有安装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"

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐