Postgresql 导出表结构信息

项目组要出表结构的文档,手写太麻烦,想用slq脚本导出一份。

--查询所有的表字段信息(带表名)

select

(select relname||‘--‘||(select description from pg_description where objoid=oid and objsubid=0) as comment from pg_class where oid=a.attrelid) as table_name,

a.attname as column_name,

format_type(a.atttypid,a.atttypmod) as data_type,

(case when atttypmod-4>0 then atttypmod-4 else 0 end)data_length,

(case when (select count(*) from pg_constraint where conrelid = a.attrelid and conkey[1]=attnum and contype=‘p‘)>0 then ‘Y‘ else ‘N‘ end) as 主键约束,

(case when (select count(*) from pg_constraint where conrelid = a.attrelid and conkey[1]=attnum and contype=‘u‘)>0 then ‘Y‘ else ‘N‘ end) as 唯一约束,

(case when (select count(*) from pg_constraint where conrelid = a.attrelid and conkey[1]=attnum and contype=‘f‘)>0 then ‘Y‘ else ‘N‘ end) as 外键约束,

(case when a.attnotnull=true then ‘Y‘ else ‘N‘ end) as nullable,

col_description(a.attrelid,a.attnum) as comment

from pg_attribute a

where attstattarget=-1 and attrelid in (select oid from pg_class where relname in(select relname from pg_class where relkind =‘r‘ and relname like ‘exg_%‘))

order by table_name,a.attnum;

执行sql语句,然后将查询结果导出

使用英文逗号做分隔符,导出csv文件,可以直接在excle中编辑

使用本地字符集可以防止乱码

?

附:其它sql脚本

--查询表名和描述

select relname as table_name,(select description from pg_description where objoid=oid and objsubid=0) as comment from pg_class where relkind =‘r‘ and relname like ‘exg_%‘ order by table_name;

?

--查询表字段信息

select

a.attname as column_name,

format_type(a.atttypid,a.atttypmod) as data_type,

(case when atttypmod-4>0 then atttypmod-4 else 0 end)data_length,

(case when (select count(*) from pg_constraint where conrelid = a.attrelid and conkey[1]=attnum and contype=‘p‘)>0 then ‘Y‘ else ‘N‘ end) as 主键约束,

(case when (select count(*) from pg_constraint where conrelid = a.attrelid and conkey[1]=attnum and contype=‘u‘)>0 then ‘Y‘ else ‘N‘ end) as 唯一约束,

(case when (select count(*) from pg_constraint where conrelid = a.attrelid and conkey[1]=attnum and contype=‘f‘)>0 then ‘Y‘ else ‘N‘ end) as 外键约束,

(case when a.attnotnull=true then ‘Y‘ else ‘N‘ end) as nullable,

col_description(a.attrelid,a.attnum) as comment

from pg_attribute a

where attstattarget=-1 and attrelid = (select oid from pg_class where relname =‘exg_ms_alarm‘);--表名

时间: 2024-11-09 00:44:39

Postgresql 导出表结构信息的相关文章

【数据泵】EXPDP导出表结构

[数据泵]EXPDP导出表结构(真实案例) BLOG文档结构图 ? ? ? ? 因工作需要现需要把一个生产库下的元数据(表定义,索引定义,函数定义,包定义,存储过程)导出到测试库上,本来以为很简单的,可是做的过程发现很多的问题,现记录如下,希望有同样需要的朋友不要再走弯路了. ? ? 导读 各位技术爱好者,看完本文后,你可以掌握如下的技能,也可以学到一些其它你所不知道的知识,~O(∩_∩)O~: ① EXPDP和IMPDP如何导出导入元数据,包括表定义,索引定义,函数定义,包定义,存储过程(重点

DB2导出表结构语句

1.使用db2cmd打开db2命令行 2.db2look -d db_name -e -a -x -i db_username -w db_passwd -0 file_name.sql #导出数据库结构 3.db2move db_name export -u db_username -p db_passwd #导出数据库数据 4. create database db_name on 'directory_name' using codeset utf-8 territory US colla

Mysql导出表结构及表数据 mysqldump用法

命令行下具体用法如下:  mysqldump -u用戶名 -p密码 -d 數據库名 表名 脚本名; 1.导出數據库為dbname的表结构(其中用戶名為root,密码為dbpasswd,生成的脚本名為db.sql)    mysqldump -uroot -pdbpasswd -d dbname >db.sql; 2.导出數據库為dbname某张表(test)结构    mysqldump -uroot -pdbpasswd -d dbname test>db.sql; 3.导出數據库為dbna

PowerDesigner连接Oracle并导出表结构

环境:Oracle 11G(远程) + win32_11gR2_client + PowerDesigner 15 一.下载.安装.配置 1.下载地址 win32_11gR2_client客户端下载地址: https://pan.baidu.com/s/1c2N0GPa Windows版Oracle下载地址: http://pan.baidu.com/s/1kUQubC7 Linux版本Oracle11G下载地址: http://download.oracle.com/otn/linux/ora

mysql mysqldump只导出表结构或只导出数据的实现方法

mysql mysqldump 只导出表结构 不导出数据 复制代码代码如下: mysqldump --opt -d 数据库名 -u root -p > xxx.sql 备份数据库  复制代码代码如下: #mysqldump 数据库名 >数据库备份名 #mysqldump -A -u用户名 -p密码 数据库名>数据库备份名 #mysqldump -d -A --add-drop-table -uroot -p >xxx.sql 1.导出结构不导出数据  复制代码代码如下: mysql

PL/SQL Developer 导出表结构和表数据

导出表结构 1. 打开pl/sql客户端(导出数据表结构)--在左侧 点击tabales 2 Tools-->Export User Objects 3. 红色1 是你要选择导出的表,红色2 是你要导出到.sql文件 存放到自己电脑位置,红色三就是导出的意思,做完这一步就已经把数据表的结构导出来了 导出表数据 1.打开pl/sql客户端 在左侧 点击tabales,然后 Tools-->Exports Tables 2. 主意红色的部分,导出文件后缀为.sql

mysql 导出表结构和表数据 mysqldump用法

mysql 导出表结构和表数据 mysqldump用法 命令行下具体用法如下:   mysqldump -u用戶名 -p密码 -d 数据库名 表名 > 脚本名; 导出整个数据库结构和数据mysqldump -h localhost -uroot -p123456 database > dump.sql 导出单个数据表结构和数据mysqldump -h localhost -uroot -p123456  database table > dump.sql 导出整个数据库结构(不包含数据)

[笔记] MySql Workbench 导出表结构和数据报错 mysqldump: [ERROR] unknown variable 'delayed-insert=FALSE'

下午使用MySql Workbench导出数据库表结构,设置完导出选项后执行导出,报如下错误: 16:22:40 Dumping nacweixindb (tb_app) Running: mysqldump.exe --defaults-file="c:\users\admini~1\appdata\local\temp\tmpswfutq.cnf" --delayed-insert=FALSE --host=localhost --protocol=tcp --user=root

mysql可以只导出表结构吗?

-- 只导出数据不导出表结构mysqldump -t csf_home -uroot -p123456 > data.sql -- 只下载库数据,导出结构不导出数据mysqldump --opt -uroot -p123456 -d csf_maec > cm.sql -- 只下载表结构mysqldump --opt -uroot -p123456 -d csf_maec --table report_data > cm.sql --下载存储过程.存储函数/usr/local/mysql