postgresql中oid指的是什么

发布时间:2020-08-01 10:57:28 作者:清晨
来源:亿速云 阅读:479

不懂postgresql中oid指的是什么?其实想解决这个问题也不难,下面让小编带着大家一起学习怎么去解决,希望大家阅读完这篇文章后大所收获。

行对象标识符(对象ID),这个字段只有在创建表时使用了“with oids”或配置参数“default_with_oids”的值为真时才出现,这个字段的类型是oid(类型名与字段名同名)。

PostgreSQL在内部使用对象标识符(oid)作为系统表的主键。系统不会给用户创建的表增加一个oid字段。oid类型用一个四字节的无符号整数实现,不能提供大数据范围内的唯一性保证,甚至在单个大表中也不行。因此PostgreSQL官方不鼓励在用户创建的表中使用oid字段。

oid字段生成的序列值是全局的,可以使用以下例子进行验证:

--创建带oid的表

mydb=# create table t1(id int) with oids;
CREATE TABLE
mydb=# create table t2(id int) with oids;
CREATE TABLE

--表t1插入数据

mydb=# insert into t1 values(10);
INSERT 32919 1

--查询表t1的oid

mydb=# select oid,id from t1;
oid  | id
------+----
32919 | 10
(1 row)

--表t2插入数据

mydb=# insert into t2 values(10);
INSERT 32920 1

--查询表t2的oid

mydb=# select oid,id from t2;
oid | id
-----+----
32920| 10
(1 row)

--重复上面过程

mydb=# insert into t1 values(11);
INSERT 32921 1
mydb=# select oid,id from t1;
oid  | id
------+----
32919 | 10
32921 | 11
(2 rows)
 
mydb=# insert into t2 values(11);
INSERT 32922 1
mydb=# select oid,id from t2;
oid  | id
------+----
32920 | 10
32922 | 11
(2 rows)

由以上可以看出,oid是全局分配的。

表(包括toast表)、索引、视图的对象标识符就是系统表pg_class的oid字段的值,如下:

mydb=# select oid,relname,relkind from pg_class where relname like 't_';
oid  | relname | relkind
------+---------+---------
32913 | t1    | r
32916 | t2    | r
(2 rows)

感谢你能够认真阅读完这篇文章,希望小编分享postgresql中oid指的是什么内容对大家有帮助,同时也希望大家多多支持亿速云,关注亿速云行业资讯频道,遇到问题就找亿速云,详细的解决方法等着你来学习!

推荐阅读:
  1. Cisco asa 5520 oid
  2. postgresql表空间指的是什么

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

postgresql gr 指的

上一篇:postgresql修改数据库连接数的方法

下一篇:初始化postgresql的方法

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》