PostgreSQL:查询元数据(表 、字段)信息、库表导入导出命令
一、查询表、模式及字段信息
1、查询指定模式下的所有表
select tablename,*
from pg_tables
where schemaname = 'ods';
2、查询指定模式下的表名及字段
SELECT
C.relname,
A.attname AS NAME,
format_type ( A.atttypid, A.atttypmod ) AS TYPE,
col_description ( A.attrelid, A.attnum ) AS COMMENT
FROM
pg_class AS C,
pg_attribute AS A,
pg_tables AS B
WHERE A.attrelid = C.oid
and C.relname=B.tablename
AND A.attnum > 0
AND B.schemaname = 'ods'
AND B.tablename NOT SIMILAR TO '[a-z,_]+_2022[0-9]+';
3、查询包含指定字段的表
SELECT DISTINCT
C.relname
FROM
pg_class AS C,
pg_attribute AS A,
pg_tables AS B
WHERE A.attrelid = C.oid
and C.relname=B.tablename
AND A.attnum > 0
AND B.schemaname = 'ods'
AND B.tablename NOT SIMILAR TO '[a-z,_]+_2022[0-9]+'
AND A.attname ='dt';
4、查询指定表的字典(表名、字段名、备注、类型)
select
c.relname as 表名,
obj_description(relfilenode, 'pg_class')::varchar as 表注释,
d.description as 字段备注,
a.attname as 字段名,
concat_ws ('', t.typname,SUBSTRING (format_type (a.atttypid,a.atttypmod) from'\(.*\)')) as 字段类型
from
pg_class c,
pg_attribute a,
pg_type t,
pg_description d
where a.attnum > 0
and a.attrelid = c.oid
and a.atttypid = t.oid
and d.objoid = a.attrelid
and d.objsubid = a.attnum
and c.relname in (select tablename from pg_tables where schemaname = 'ap')
and c.relname = 'fact_ito'
查询非分区表:and position ('_2' in tablename) = 0
二、会话及锁信息
1、查询所有会话
SELECT sa.* FROM pg_catalog.pg_stat_activity sa
三、导入导出命令
1、数据库导入导出
(1)从源数据库导出结构
pg_dump --host=172.16.6.219 --port=5432 --username=postgres --dbname=bigdata --if-exists --clean --no-privileges --no-owner --schema-only --file=bigdata_20220815.sql
(2)从源数据库导出结构和数据
sudo pg_dump --host=172.16.6.219 --port=5432 --username=postgres --dbname=kettle --if-exists --clean --no-privileges --no-owner --file=kettle_20221110.sql
(3)从文件导入目标数据库
sudo psql --host=localhost --port=5432 --username=postgres --file=kettle_20221110.sql --dbname=kettle
2、模式导入导出
(1)导出模式结构
sudo pg_dump --host=172.16.6.219 --port=5432 --username=postgres --dbname=bigdata --schema=ods --if-exists --clean --no-privileges --no-owner --schema-only --file=schema_bigdata_ods_20221110.sql
(2)导出模式结构和数据
sudo pg_dump --host=172.16.6.219 --port=5432 --username=postgres --dbname=bigdata --schema=ods --if-exists --clean --no-privileges --no-owner --file=bigdata_ods_20221110.sql
(3)从文件导入模式
sudo psql --host=172.16.6.219 --port=5432 --username=postgres --file=bigdata_ods_20221110.sql --dbname=bigdata
3、表导入导出
(1)导出源表结构
pg_dump --username=postgres --host=172.16.5.66 --port=5432 --dbname=bigdata --if-exists --clean --schema-only --no-privileges --no-owner --file=dim_area_value.sql --table=ap.dim_area_value
(2)导出源表数据和结构
pg_dump --username=postgres --host=172.16.5.66 --port=5432 --dbname=bigdata --if-exists --clean --no-privileges --no-owner --file=dim_area_value.sql --table=ap.dim_area_value
(3)从文件导入至目标表
psql --host=112.94.20.4 --port=5432 --username=postgres --file=dim_area_value.sql --dbname=bigdata
4、免密配置
5、实际执行的命令
(1)导入
COPY ap.analysis_operating_expenses_details (amount, level_one_name,
level_two_name, level_three_name,
level_four_name, name, date,
organization_name, organization_name_short,
dim_customer_name, customer_type, cus_industry,
staff_name, cus_manage_code) FROM stdin;
(2)导出
COPY ap.fact_ship_20221031 (order_no, order_line_no, produce_no,
ship_no, cus_code, product_code,
sales_area_code, sales_organize_code,
sales_scene, ship_quantity, receipt_quantity,
receipt_baseline, receipt_baseline_days,
forecast_receipt_date, forecast_income_date,
ship_date, production_cost_baseline, price,
receipt_overdue_flag, receipt_overdue_level,
income_rule, dt, warehouse_code, staff_code,
contract_type, confirm_rule, material_cost_baseline,
artificial_cost_baseline, manufacture_cost_baseline,
cus_biz_no, not_tax_price, not_tax_authorize_price,
ship_row) TO stdout;
PostgreSQL:查询元数据(表 、字段)信息、库表导入导出命令的更多相关文章
- TSQL:A表字段与B表中的关联,关联条件中一列是随机关联的实现方式
A表字段与B表中的关联,关联条件中一列是随机关联的实现方式 create table test( rsrp string, rsrq string, tkey string, distan strin ...
- mysql查询拥有某个字段的所有表
前言:最近遇到一个需求,需要给一个数据库所有的表添加一个字段,但是一些后创建的表已经有了这个字段,所以引发了下文. *注释 columnName 字段名 dbName 数据库名 #查询指定库拥有某 ...
- mysql查询含有指定字段的所有表
SELECT * FROM information_schema.columns WHERE column_name='userId'; TABLE_SCHEMA字段为db的名称(所属的数据库),字段 ...
- openx 添加新表和据库表和字段
OpenX的版本是2.8.10.在数据表加完数据库之后,还不能读取和保存字段. OpenX使用scheme来 管理数据库表和字段, 修改数据库结构同时也要修改相关schema, 一个是etc/tabl ...
- 查询mysql数据库表的信息(表大小、数据大小、索引大小)
select * from information_schema.TABLES where information_schema.TABLES.TABLE_SCHEMA='databasename' ...
- 查询包含指定字段的所有表名的SQL脚本
select [name] from sysobjects where [id] in (select [id] from syscolumns where [name]='ReceiptNbr') ...
- oracle删除表字段和oracle表增加字段
这篇文章主要介绍了oracle表增加字段.删除表字段修改表字段的使用方法,大家参考使用吧 添加字段的语法:alter table tablename add (column datatype [d ...
- Oracle导出表数据与导入表数据dmp,以及导入导出时候常见错误
使用DOS 操作界面导出表数据,导入表数据(需要在数据库所在的服务器上边执行) exp UserName/Password@192.168.0.141/orcl file=d:\xtables.d ...
- mysql 查询数据库表信息,字段信息
#======================================================================= #查询表信息 select table_name, t ...
- sqlserver查询数据库中包含某个字段的所有表和所有存储过程
1.查询包含某字段的所有表 select object_name(id) objName,Name as colName from syscolumns where (name like'%你要查询的 ...
随机推荐
- Activiti 7 源码学习
1. 启动分析 源码是 7.1.0.M6 首先从 ProcessEngineAutoConfiguration 开始 ProcessEngineAutoConfiguration 是activiti ...
- 基于 OpenTelemetry 的链路追踪
链路追踪的前世今生 分布式跟踪(也称为分布式请求跟踪)是一种用于分析和监控应用程序的方法,尤其是使用微服务架构构建的应用程序.分布式跟踪有助于精确定位故障发生的位置以及导致性能差的原因. 起源 链路追 ...
- EFK-4::ElasticSearch集群TLS加密通讯
转载自:https://mp.weixin.qq.com/s?__biz=MzUyNzk0NTI4MQ==&mid=2247483822&idx=1&sn=6813b22eb5 ...
- Elastic:Sense chrome - 在 chrome 浏览器中操作 Elasticsearch 的插件
文章转载自:https://elasticstack.blog.csdn.net/article/details/114533904 Sense 是我们现在所说的 Kibana 控制台 UI 的第一个 ...
- linux系统安装Confluence
转载网址:https://blog.yupaits.com/blog/record/linux-confluence.html#安装步骤 Confluence简介 Confluence是一个专业的企业 ...
- SCI论文写作指南
目录 科技论文的特点 时态的使用 论文的逻辑结构 作者 选择期刊 写作 Title/论文题名 题名 题名的作用 题名基本要求 作者 作者姓名的拼音表达方式 作者单位名与地址的标署 摘要的写作与关键词 ...
- .NET 反向代理 YARP 自定义配置提供程序(Configuration Providers)
介绍 基本 Yarp 示例显示从 appsettings.json 加载的代理配置.相反,代理配置可以从您选择的源以编程方式加载.您可以通过提供几个实现 IProxyConfigProvider 和 ...
- C#并发编程-1 并发编程概述
一 并发编程简介 1.1 关于并发和并行 并发和并行的概念: 并发:(Concurrent),在某个时间段内,如果有多个任务执行,即有多个线程在操作时,如果系统只有一个CPU,则不能真正同时进行一个以 ...
- 一步一图带你深入理解 Linux 虚拟内存管理
写在本文开始之前.... 从本文开始我们就正式开启了 Linux 内核内存管理子系统源码解析系列,笔者还是会秉承之前系列文章的风格,采用一步一图的方式先是详细介绍相关原理,在保证大家清晰理解原理的基础 ...
- .Net Core redis 调用报错 '6000 Redis requests per hour' 解决 6000 此调用限制
问题描述 redis 是一种基于内存,性能高效的 NoSQL 数据库,性能高主要就体现在数据交互耗时较短,能够段时快速的对用户的请求做出反应,所以在业务比较复杂或交互量需求大时,必然会超过 6000次 ...