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

PostgreSQL数据库批量删除唯一索引

要批量删除PostgreSQL数据库中非系统模式的所有唯一索引,可以使用以下脚本。请谨慎操作,建议提前备份数据并验证生成的SQL语句。

生成删除索引的SQL命令
以下命令生成所有符合条件的唯一索引的DROP INDEX语句,并保存到临时文件:

PGPASSWORD='Hello@123' psql -t -A -U postgres -d postgres -h 127.0.0.1 -c "SELECTDISTINCT 'ALTER TABLE public.' || tab.table_name || ' REPLICA IDENTITY FULL;'
FROMinformation_schema.tables tab
LEFT JOIN information_schema.table_constraints tco ON tab.table_schema = tco.table_schemaAND tab.table_name = tco.table_nameAND tco.constraint_type = 'PRIMARY KEY'
LEFT JOIN pg_class tac ON tac.relname = tab.table_nameAND tac.relnamespace = (SELECT oid FROM pg_namespace WHERE nspname = 'public')
WHEREtab.table_type = 'BASE TABLE'AND tab.table_schema = 'public'AND tco.constraint_name IS NULLAND (tac.relreplident IS DISTINCT FROM 'f' OR tac.relreplident IS NULL );" > /tmp/delete_index.sql

输出示例
执行后,`/tmp/delete_index.sql`文件内容将仅包含:

ALTER TABLE public.t0420 REPLICA IDENTITY FULL;
ALTER TABLE public.t0421 REPLICA IDENTITY FULL;

参数说明
- **`-t` 或 `--tuples-only`**:关闭列标题和行数统计(如`(2 rows)`)。  
- **`-A` 或 `--no-align`**:使用非对齐输出格式,避免多余的空白符。  

这两个参数组合使用后,能确保输出结果为纯净的 SQL 语句,可直接用于后续执行。

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

相关文章:

  • 【AI】OrinNX上安装RIVA-2.19.0,实现文本转语音
  • Spring Boot 集成 ActiveMQ 实现异步消息通信(二)
  • Sce2DriveX: 用于场景-到-驾驶学习的通用 MLLM 框架——论文阅读
  • Tauri 跨平台开发指南及实战:用前端技术征服桌面应用(合集-万字长文)
  • 前端安全中的XSS(跨站脚本攻击)
  • 【3dmax笔记】010: 创建标准基本体、扩展基本体
  • Liunx安装Apache Tomcat
  • 阿里云服务迁移实战: 04-IP 迁移
  • Python 环境管理工具使用差别比对文档
  • 扣子智能体2:优化提示词
  • Python 重构“策略”模式:用函数简化设计模式的实践
  • Python在自动驾驶仿真环境中的应用:构建智能驾驶的虚拟世界
  • Java Properties 类详解
  • 「Mac畅玩AIGC与多模态07」开发篇03 - 开发第一个 Agent 插件调用应用
  • 嵌入式设备异常掉电怎么办?
  • 如何查看k8s获取系统是否清理过docker镜像
  • CISC与RISC详解:定义、区别及典型处理器
  • DDoS vs CC攻击:哪种对服务器威胁更大?
  • 最新字节跳动运维云原生面经分享
  • 【工具】PDF转HTML
  • 2025 TK ads短视频广告投放策略多维度解析
  • 针对Linux挂载NAS供Minio使用及数据恢复的需求
  • git配置SSH KEY
  • 业务层在事务中高频创建动态表然后删除或者回滚导致 pg_dump 概率出现备份失败问题分析
  • Neo4j 的 `SET n += $properties` 语法详解
  • Prometheus监控
  • 1.4 点云数据获取方式——结构光相机
  • 面向网络安全的开源 大模型-Foundation-Sec-8B
  • fastapi和flaskapi有什么区别
  • QWidget无边框设置