首页 > 其他分享 >PG获取DDL建表语句的方法

PG获取DDL建表语句的方法

时间:2023-06-26 23:33:42浏览次数:41  
标签:ddlx dbatest users DATABASE -- PG DDL 建表 TABLE

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

1、pg_dump获取表结构

2、使用第三方的插件

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

项目地址: 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 WITH                       ↵
   ENCODING = UTF8                                  ↵
   LC_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 !!!




标签:ddlx,dbatest,users,DATABASE,--,PG,DDL,建表,TABLE
From: https://blog.51cto.com/lee90/6558750

相关文章

  • 自然语言处理 Paddle NLP - 结构化数据问答-理论
    NLP问答任务相似度和规则匹配,都是早期的方法,现在主流的方法,都是基于生成的方法结构化数据问答,有两种形式,一种是知识图谱形式、一种是关系型数据库形式。主要应用在企业中,减少销售的成本应用于商业智能,用于报告生成,解放了财务能力,降低人力成本结构化数据问答任务结构化数......
  • django之中间件(middleware)
    目录django之中间件(middleware)django默认中间件django中间件原理中间件程序结构自定义中间件中间件程序执行顺序字符串列表注册原理importlib模块模块对象的反射仿django配置文件注册自定义中间件两个常见的自定义方法process_requestprocess_response三个了解的自定义方法django......
  • hive ddl
        普通建表 外部表代表会完全接管,内部表表示删除的时候不会删除HDFS的数据     三种建表语句第二种把查询语句作为建一个新表,新表里面就有数据第三种新建的表里面就没有数据 ......
  • psycopg2用python生成一些数据插入pg数据库
    创建学生表,用python随机生成姓名,性别,班级,省,市,生日插入数据库中先把姓名和省市以字典方式存入单独文件fromname_dictimportnamefromcity_dictimportcityfromrandomimportchoice,randintfromdatetimeimportdateimportpsycopg2aspgconn=pg.connect(data......
  • fiddler的介绍和使用
    一、fiddler工作原理Fiddler是以代理WEB服务器的形式工作的,浏览器与服务器之间通过建立TCP连接以HTTP协议进行通信,浏览器默认通过自己发送HTTP请求到服务器,它使用代理地址:127.0.0.1,端口:8888.当Fiddler开启会自动设置代理,退出的时候它会自动注销代理,这样就不会影响别的......
  • fiddler模拟弱网测试
    Fiddler模拟弱网测试一、Fiddler原理Fiddler代理位于Web客户端和Web服务器之间,扮演“中间人”的角色。Fiddler既代理客户端向服务器发送请求,又代理服务器向客户端返回响应内容。Fiddler官方地址:https://www.telerik.com/download/fiddler/fiddler4二、Fiddler弱网测试方......
  • 基于xilinx的FPGA在线升级程序,仅7系列以上支持
    基于xilinx的FPGA在线升级程序,仅7系列以上支持涉及的知识点和领域范围:1.FPGA(现场可编程门阵列):FPGA是一种可编程的硬件设备,可以根据需要重新配置其内部电路,以实现不同的功能和任务。2.Xilinx:Xilinx是一家知名的FPGA制造商,提供各种型号和系列的FPGA芯片。3.在线升级程序:在线升......
  • pgmetrics 介绍
    pgmetrics介绍pgmetrics是一个开源的、零依赖的、单二进制的工具,它可以轻松收集和报告PostgreSQL指标,用于脚本编写、自动化和故障排除。pgmetrics从正在运行的PostgreSQL服务器收集350多个指标,并以易于阅读的文本格式显示,或者将其导出为JSON和CSV用于脚本编写。pgmetrics是用......
  • PromptAppGPT:基于ChatGPT的自然语言开发框架
    近日首个自研全开源自然语言低代码GPT应用快速开发框架PromptAppGPT迎来重要更新。框架简介可以参考往期文章: 真低代码!首个基于ChatGPT的自然语言开发框架PromptAppGPT:全自动编译、运行、界面生成。项目网站:https://promptappgpt.wangzhishi.net/项目代码:https://github.......
  • 自然语言处理 Paddle NLP - 检索式文本问答-理论
    问答系统(QuestionAnsweringSystem,QA)是信息检索系统的一种高级形式,它能用准确、简洁的自然语言回答用户用自然语言提出的问题。其研究兴起的主要原因是人们对快速、准确地获取信息的需求。问答系统是人工智能.抽取式阅读理解:它的答案一定是段落里的一个片段,所以在训练前,先要......