PostpreSQL系统表中的字段

简介: 每天学习一点点

每天学习一点点


select oid,relname,relkind from pg_class where relname like 'wpp_adefect_%' and length(relname) < 20

--17使用对象标识符定位表名

select 6224742::regclass;

--18 ctid代表数据行在它所处的表的物理位置,vacuum full之后会变化。

--第一个数字标识的是物理块号,第二个数字是物理块号中的行号。

select ctid,glass_id from wpp_adefect_glass_f limit 10;

--第十个物理块第二行的内容是什么?

select ctid,glass_id from wpp_adefect_glass_f where ctid = '(10,5)'--可以利用ctid删除一个table中重复的记录,当然是大表用这种方式删除才有意义,小表用此方法删除就大材小用了。

select * from A t where t.ctid <> (select min(b.ctid) from --20180718 2000



--通过数据字典获取表的字段信息

--pg_attribute存放的是字段信息,需要关联 存放表的数据字典 pg_class & 存放schema的数据字典pg_namespace

select a.attname,pg_catalog.format_type(a.atttypid,a.atttypmod),a.attrelid as data_type  from pg_catalog.pg_attribute a

where a.attrelid in (select c.oid  from pg_catalog.pg_class c left join pg_catalog.pg_namespace n on n.oid = c.relnamespace

   where c.relname = 'pg_class' and n.nspname = 'pg_catalog')

and a.attnum > 0

and not a.attisdropped order by a.attnum

--使用regclass会简化很多

select a.attname,pg_catalog.format_type(a.atttypid,a.atttypmod),a.attrelid as data_type  from pg_catalog.pg_attribute a

where a.attrelid = 'pg_catalog.pg_class'::regclass

and a.attnum > 0

and not a.attisdropped order by a.attnum

--通过数据字典获取表的分布键

create table acquire_dsitr(a int,b int, c int,d int) distributed by (c,a);

select * from gp_distribution_policy where localoid = 'acquire_dsitr'::regclass;

--这样就可以关联pg_attribute 来获取分布键了

--attrnums 是一个数组。记录字段的attunm 与pg_attribute中的attnum关联

select a.attrnums[i.i],b.attname,a.localoid::regclass from gp_distribution_policy a,

(select generate_series(1,100))i(i), pg_attribute b

where a.attrnums[i.i] is not null

and a.localoid = b.attrelid

and a.attrnums[i.i] = b.attnum

and a.localoid = 'acquire_dsitr'::regclass

order by i.iA b where t.ctid = b.ctid)


相关实践学习
CentOS 7迁移Anolis OS 7
龙蜥操作系统Anolis OS的体验。Anolis OS 7生态上和依赖管理上保持跟CentOS 7.x兼容,一键式迁移脚本centos2anolis.py。本文为您介绍如何通过AOMS迁移工具实现CentOS 7.x到Anolis OS 7的迁移。
目录
相关文章
|
7月前
|
存储 关系型数据库 索引
10. 在一个非主键字段上创建了索引, 想要根据该字段查询到数据, 需要查询几次 ?
在非主键字段上创建索引,查询数据通常需两次。对于MyISAM,先通过索引找到数据行指针,再获取数据;而InnoDB则先找主键ID,再从主键索引中查找数据。
47 0
|
SQL
一条集多表查询、字段与字段拼接、合并每张表共同字段、新增列并赋值的SQL
一条集多表查询、字段与字段拼接、合并每张表共同字段、新增列并赋值的SQL
71 0
|
存储 数据库 索引
一般会在什么样字段上添加什么样的索引
在数据库中,索引是一种用于加快数据检索速度的数据结构。通过在特定的字段上创建索引,可以大幅度提高查询效率。然而,不是所有的字段都适合创建索引,因为索引的创建和维护也会带来额外的开销。在选择字段创建索引时,需要综合考虑数据的查询频率、数据的更新频率以及索引的存储和性能开销等因素。下面将介绍一些常见的字段类型和索引的选择策略。
200 1
|
SQL 索引
SQL查看表字段信息如:字段名、字段类型、字段精度、字段大小、索引、主键等
表名、字段名、字段类型、字段精度、字段大小 字段名、是否为主键、字段类型、字段大小、索引名
1261 0
SQL查看表字段信息如:字段名、字段类型、字段精度、字段大小、索引、主键等
|
数据采集
suning所获取的字段
suning所获取的字段
|
SQL 算法 测试技术
Guid算法与标识列(自动增长字段)在表中的应用
Guid算法与标识列(自动增长字段)在表中的应用
182 0
Guid算法与标识列(自动增长字段)在表中的应用
|
关系型数据库 MySQL
mysql用一个表中的字段批量更新另一个表中的字段
mysql用一个表中的字段批量更新另一个表中的字段
662 0
|
关系型数据库

热门文章

最新文章

相关实验场景

更多