当前位置: 首页 > ops >正文

python如何遍历postgresql所有的用户表

要遍历PostgreSQL数据库中的所有用户表,可以按照以下步骤操作:

  1. 安装必要依赖库
pip install psycopg2-binary
  1. 使用标准SQL查询方案(推荐)
import psycopg2def list_user_tables():try:conn = psycopg2.connect(host="your_host",database="your_db",user="your_user",password="your_password")cursor = conn.cursor()# 查询非系统模式中的用户表query = """SELECT table_schema, table_name FROM information_schema.tables WHERE table_type = 'BASE TABLE'AND table_schema NOT IN ('information_schema', 'pg_catalog')"""cursor.execute(query)tables = cursor.fetchall()print("用户表列表:")for schema, table in tables:print(f"Schema: {schema}, Table: {table}")except Exception as e:print(f"数据库操作异常: {e}")finally:if 'conn' in locals():conn.close()list_user_tables()
  1. 替代方案(使用pg_catalog)
# 连接代码同上,替换查询语句为:
query = """SELECT schemaname, tablename FROM pg_catalog.pg_tables WHERE schemaname NOT LIKE 'pg_%' AND schemaname != 'information_schema'
"""

需要注意:

  1. 替换连接参数中的占位符为实际值
  2. 结果包含所有非系统模式中的表(如public模式)
  3. 查询结果格式为(模式名,表名)的元组列表
  4. 需确保数据库用户有访问元数据的权限

建议优先使用information_schema方案,因其符合SQL标准且具有更好的跨数据库兼容性。

http://www.xdnf.cn/news/7227.html

相关文章:

  • OpenHarmony外设驱动使用 (五),Fingerprint_auth
  • ubuntu22.04 卸载ESP-IDF
  • AIGC与数字金融:人工智能金融创新的新纪元
  • [Java][Leetcode middle] 151. 反转字符串中的单词
  • Dify-3:系统架构
  • 国产 iPaaS 与国外 iPaaS 产品相比如何?以谷云科技为例
  • HTML向四周扩散背景
  • Linux-进程间通信
  • Redis有哪些常用应用场景?
  • Kubernetes MCP服务器(K8s MCP):如何使用?
  • upload-labs通关笔记-第12关 文件上传之白名单GET法
  • 【Unity 2023 新版InputSystem系统】新版InputSystem 如何进行人物移动(包括配置、代码详细实现过程)
  • 【软考-架构】15、软件架构的演化和维护
  • 第2篇 水滴穿透:IGBT模块的绝对防御体系
  • NIFI 2.40简介及部署
  • python实现pdf转图片(针对每一页)
  • 手机内存不够,哪些文件可以删?
  • 电气材料的分类及应用
  • MySQL 8.0 OCP 英文题库解析(五)
  • python文件部署docker,容器路径与系统路径映射
  • ionic 列表操作详解
  • 基于vue框架的东莞市二手相机交易管理系统5yz0u(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。
  • 解决Windows磁盘管理中因夹卷导致的无法分区问题
  • 146. LRU 缓存
  • 自己拥有一台服务器可以做哪些事情
  • 科技行业智能化升级经典案例—某芯片公司
  • Perl测试管理:从混乱到高效的系统化实践
  • 《DiffPoint训练过程详解:从图像到点云的逐步优化》
  • B树与B+树全面解析
  • Vue3.5 企业级管理系统实战(十九):菜单管理