postgresql中oid指的是什么-创新互联
创新互联www.cdcxhl.cn八线动态BGP香港云服务器提供商,新人活动买多久送多久,划算不套路!
让客户满意是我们工作的目标,不断超越客户的期望值来自于我们对这个行业的热爱。我们立志把好的技术通过有效、简单的方式提供给客户,将通过不懈努力成为客户在信息化领域值得信任、有价值的长期合作伙伴,公司提供的服务项目有:域名注册、网页空间、营销软件、网站建设、南昌网站维护、网站推广。不懂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指的是什么内容对大家有帮助,同时也希望大家多多支持创新互联,关注创新互联-成都网站建设公司行业资讯频道,遇到问题就找创新互联,详细的解决方法等着你来学习!
当前名称:postgresql中oid指的是什么-创新互联
网站URL:http://hbruida.cn/article/csgiip.html