首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >PG获取DDL建表语句的方法

PG获取DDL建表语句的方法

作者头像
保持热爱奔赴山海
发布于 2023-07-05 03:06:18
发布于 2023-07-05 03:06:18
2K00
代码可运行
举报
文章被收录于专栏:数据库相关数据库相关
运行总次数:0
代码可运行

PG中获取表结构不像MySQL那样show create table xxx \G 那么便捷。

1、pg_dump获取表结构

2、使用第三方的插件

这里介绍下插件的使用方法,具体如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
项目地址: https://github.com/lacanoid/pgddl

# 安装插件(我这里使用的是编译安装方式)
cd postgresql-14.0/contrib
unzip pgddl-master.zip
cd pgddl-master

export PG_CONFIG=/usr/local/pgsql-14.0/bin/pg_config
make
make install


=# \c dbatest
=# create extension ddlx;

-- 提取建库语句

=# SELECT ddlx_create(oid) FROM pg_database WHERE datname=current_database();
                     ddlx_create                     
─────────────────────────────────────────────────────
 CREATE DATABASE dbatest WITHENCODING = UTF8LC_COLLATE = "en_US.UTF-8"LC_CTYPE = "en_US.UTF-8";                        ↵
                                                    ↵
 ALTER DATABASE dbatest SET TABLESPACE pg_default;  ↵
                                                    ↵
 COMMENT ON DATABASE dbatest IS NULL;               ↵
                                                    ↵
 ALTER DATABASE dbatest WITH ALLOW_CONNECTIONS true;ALTER DATABASE dbatest WITH IS_TEMPLATE false;     
 
(1 row)

=# \dt+
                                          List of relations
 Schema │      Name       │ Type  │  Owner   │ Persistence │ Access method │    Size    │ Description 
────────┼─────────────────┼───────┼──────────┼─────────────┼───────────────┼────────────┼─────────────
 public │ pgbench_tellers │ table │ dts      │ permanent   │ heap          │ 0 bytes    │ 
 public │ users           │ table │ postgres │ permanent   │ heap          │ 8192 bytes  
(2 rows)

-- 提取建表语句

=# SELECT ddlx_script('users') ;
                  ddlx_script                  
───────────────────────────────────────────────
 BEGIN;                                       ↵
                                              ↵
 /*                                           ↵
 DROP TABLE users; -- !!!ATTENTION!!! --      ↵
 */                                           ↵
                                              ↵
 -- Type: TABLE ; Name: users; Owner: postgres↵
                                              ↵
 CREATE TABLE users (                         ↵
     id integer NOT NULL,                     ↵
     name text                                ↵
 );                                           ↵
                                              ↵
 COMMENT ON TABLE users IS NULL;              ↵
                                              ↵
 ALTER TABLE users ADD CONSTRAINT users_pkey  ↵
   PRIMARY KEY (id);                          ↵
                                              ↵
                                              ↵
 END;                                         
 
(1 row)


不足: 目前遇到的问题,  它不能提取出 sequence !!!
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2023-06-26,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
PostgreSQL查看表结构语句
在PG里面查看表结构,不如mysql那样show create table xx 这样方便。 
保持热爱奔赴山海
2022/11/14
4.5K0
史上最全:PostgreSQL DBA常用SQL查询语句(建议收藏学习)
查看帮助命令本周六,在北京将迎来一年一度的 ACOUG年会,在本次年会上,我们将对社区过去一年的工作进行回顾和梳理,并展望和探讨下一年工作的内容,同时,本次年会也开放了直播通道,名额不多,报名从速哦~
数据和云
2019/12/24
11K0
Prometheus+Grafana PG监控部署以及自定义监控指标
Prometheus:是从云原生计算基金会(CNCF)毕业的项目。Prometheus是Google监控系统BorgMon类似实现的开源版,整套系统由监控服务、告警服务、时序数据库等几个部分,及周边生态的各种指标收集器(Exporter)组成,是在当下主流的监控告警系统。
数据和云
2021/08/27
4.5K0
Prometheus+Grafana PG监控部署以及自定义监控指标
PostgreSQL数据库体系架构
PostgreSQL数据库的进程可以分为三类:后台进程、后端进程或叫服务器进程、客户端进程或用户进程。
用户8006012
2022/06/10
4.5K1
30个实用SQL语句,玩转PostgreSQL
PostgreSQL是一款功能非常强大的开源关系型数据库,它支持哈希索引、反向索引、部分索引、Expression 索引、GiST、GIN等多种索引模式,同时可安装功能丰富的扩展包。相较于Mysql,PostgreSQ支持通过PostGIS扩展支持地理空间数据、支持嵌套循环,哈希连接,排序合并三种表连接方式等一系列的强化功能。本文主要整理总结了30个实用SQL,方便大家可以高效利用PostgreSQL。
慕枫技术笔记
2023/03/20
8140
30个实用SQL语句,玩转PostgreSQL
PostgreSQL体系架构介绍
PostgreSQL是最像Oracle的开源数据库,我们可以拿Oracle来比较学习它的体系结构,比较容易理解。PostgreSQL的主要结构如下:
用户8006012
2022/07/26
2.5K0
Postgresql源码(32)vacuum freeze起始位点逻辑分析
https://blog.csdn.net/jackgo73/article/details/122700702
mingjie
2022/05/12
3300
Postgresql源码(32)vacuum freeze起始位点逻辑分析
PG基于dexter的自动化索引推荐
github地址: https://github.com/ankane/dexter
保持热爱奔赴山海
2024/01/03
3850
进阶数据库系列(二十):PostgreSQL 数据库备份与恢复
此种方式是直接备份数据库物理文件,在pg数据库里,这通常指的是PGDATA变量定义的文件夹,例如:
民工哥
2023/08/22
8.4K0
进阶数据库系列(二十):PostgreSQL 数据库备份与恢复
PG14 监控和日志功能提升
PostgreSQL 14与2021年9月发布,其中包括很多性能改进和功能增强,包括监控方面的功能提升。下面是一些关键内容。
yzsDBA
2021/12/06
4090
psql工具使用及数据库常用维护管理
### 六 psql工具使用及数据库常用维护管理 #### 一 psql工具的使用 ##### 1 用psql连接数据库 ~~~bash [postgres@Centos ~]$ psql -h localhost -p 5432 -d postgres -U postgres psql (13.2) Type "help" for help. postgres=# ~~~ 其中, - psql是PostgreSQL软件安装家目录下的bin路径下的可执行程序; - -h选项表示hos
用户8006012
2022/05/21
8320
PostgreSQL里面的一些命令小结
近两天总结了下PostgreSQL的基本操作命令,对PostgreSQL也有了一个基本的认识。 PostgreSQL的功能还是很丰富的,有序列,支持db link,基本Oracle里有的概念它这里也有,目前来看不支持package。 风格和Oracle也类似,没有MySQL中快捷方便的show create table 这样的语句。 从我的使用习惯来说,我基本关注以下的一些方面。 查看数据库的配置 查看用户信息 查看会话连接信息 show tables的类似方法 用户的权限查看 建表语句 表空间信息 对象
jeanron100
2018/03/30
8.1K0
PostgreSQL里面的一些命令小结
笔记分享(4) Tbase/PostgreSQL 常用命令
分享一下之前用到的tbase/pg命令, 主要是和mysql/oracle差别太大了. 做个记录, 方便后面看.
大大刺猬
2021/05/17
3.5K0
Postgresql内部缓存与OS缓存的关系
mysql通常使用odirect使数据绕过OS缓冲区落盘,wal还是使用系统缓冲。这样数据的写盘不会造成系统刷脏抖动。在pgsql中数据是与OS缓冲绑定的,自己没有做字节对齐,也不使用odirect的方式直写设备,社区对数据直写的态度也一直很悲观,原因是之前也做过很多探索,结果都不是很好:
mingjie
2022/05/12
6150
Postgresql内部缓存与OS缓存的关系
Postgresql表空间
不同的数据库表空间有不同的定义: 在 postgres 中,表空间 允许在文件系统中定义数据库对象存储的位置,实质上就是指定了一个目录。 与数据库的关系 在 postgres 中,一个表空间可以让多个数据库使用,而一个数据库也可以使用多个表空间,属于“多对多”的关系; 在 oracle 中,一个表空间只属于一个数据库,而一个数据库可以使用多个表空间,属于“一对多”的关系。
DB之路
2021/07/06
1.9K0
Greenplum Pgbench命令详解
TPC:Transactionprocessing Performance Council事务处理性能委员会
小徐
2018/10/16
1.3K0
Greenplum Pgbench命令详解
PostgreSQL全局临时表插件pgtt的使用
PostgreSQL目前到最新12版本只支持本地临时表不支持全局临时表特性 ,会话退出后临时表定义和数据被删除,创建临时表语法如下:
数据和云
2020/09/22
1.8K0
POSTGRESQL 创建一个表到底有什么说的? 可说的挺多的
创建一张表,到底有什么说的, 下面是POSTGRESQL 创建数据表的官方文档的内容截图. 那我们就往下看,到底我们可以说点什么
AustinDatabases
2021/07/15
8160
POSTGRESQL 创建一个表到底有什么说的?  可说的挺多的
CentOS7 postgresql安装与使用
版权声明:本文为木偶人shaon原创文章,转载请注明原文地址,非常感谢。 https://blog.csdn.net/wh211212/article/details/80666735
shaonbean
2019/05/26
2.2K0
Snova运维篇(九):gp数据库中数据的基本操作-1
一个表空间可以让多个数据库使用;而一个数据库可以使用多个表空间。属于"多对多"的关系。
snova-最佳实践
2019/12/30
2.4K0
Snova运维篇(九):gp数据库中数据的基本操作-1
相关推荐
PostgreSQL查看表结构语句
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验