OID 与隐含列
熟悉PostgreSQL的都知道,PG12 开始,不再支持OID伪列。KingbaseES 为了保证与旧版本兼容,特增加了OID 隐含列的支持。
- R3版本:OID 是整个数据库共用的“序列”对象;是4字节的无符号整型,其最大值40亿;会循环,不能使用OID来保证数据唯一,需要唯一性索引保证数据唯一;
- R6版本:OID 是特定表对象私有的序列,在创建表时,会顺带创建序列;序列的最大值是 2147483647 , 不会循环;要想保证OID唯一,同样需要创建唯一索引;
参数 default_with_oids 默认为 off ,表示默认建表不带 OID,但可以在建表时 加 with OIDS选项。
可以对OID 创建索引:create index ind_tab3 on tab3(oid);
隐含列
隐含列为表中各个列的一个特殊的属性,可以在建表过程中指定,也可以通过表的ALTER 语句变更某一列的隐含属性,具体语法可以参考创建表语法和ALTER TABLE 语法。
CREATE TABLE IMPLICT_T1(
OID INT INVISIBLE,
B INT,
);
ALTER TABLE IMPLICT_T1 MODIFY OID VISIBLE;
ALTER TABLE IMPLICT_T1 MODIFY NAME INVISIBLE;
如果一个列被标记为隐含列之后,所有非指定该列的DML 行为,例如SELECT *、COPY、bulkload 等等,都会忽略该列。而所有指定该列的语句,都会命中该列。
-- INSERT 语句需要指定隐含列
INSERT INTO IMPLICT_T1(OID, B, NAME) VALUES(1, 2, 'IMPLICT');
-- 查询语句不指定隐含列,将忽略该列
SELECT * FROM IMPLICT_T1;
postgres=# select * from implict_t1;
b | name
---+---------
2 | implict
(1 row)
参考Oracle 的特性,所有列都赋予了一个COLUMN ID 的属性,COLUMN ID 从1 开始,如果某一列被设置为隐含列,那么它的COLUMN ID 则设置为NULL。
OID 与隐含列的更多相关文章
- oracle 12c中的隐含列
Invisible Columns 使用select * from ,desc 等看不到该列, DROP TABLE tab1 PURGE; CREATE TABLE tab1 ( id NUMB ...
- PostgreSQL隐藏字段tableoid
问题来源: 今天群里有人问:tableoid字段在每行都有,而且一个表里面的值是重复的,这样不合理...... 因此做了一些分析: 1)创建了一个表 apple=# \d test_time Tabl ...
- PostgreSQL隐藏字段
1)创建了一个表 apple=# \d test_time Table "public.test_time" Column | Type | Modifiers --------+ ...
- 1Z0-050
QUESTION 13 View the Exhibit.Examine the following command that is executed for the TRANSPORT table ...
- 理解 Statement 和 PreparedStatement
java,servlet中的PreparedStatement 接口继承了Statement,并与之在两方面有所不同:有人主张,在JDBC应用中,如果你已经是稍有水平开发者,你就应该始终以Prepar ...
- SHARE NOTHING SHARE EVERYTHING
http://mp.weixin.qq.com/s?__biz=MjM5ODYwMjI2MA==&mid=2649736156&idx=1&sn=23931f48282f6ef ...
- Oracle数据库入门——物化视图日志结构
物化视图的快速刷新要求基本必须建立物化视图日志,这篇文章简单描述一下物化视图日志中各个字段的含义和用途. 物化视图日志的名称为MLOG$_后面跟基表的名称,如果表名的长度超过20位,则只取前20位,当 ...
- oracle在线重定义表
在一个高可用系统中,如果需要改变一个表的定义是一件比较棘手的问题,尤其是对于7×24系统.Oracle提供的基本语法基本可以满足一般性修改,但是对于把普通堆表改为分区表,把索引组织表修改为堆表等操作就 ...
- 深入 理解 Statement 和 PreparedStatement
一.使用Statement而不是PreparedStatement对象 JDBC驱动的最佳化是基于使用的是什么功能. 选择PreparedStatement还是Statement取决于你要怎么使用它们 ...
随机推荐
- ant design pro生产和开发环境的坑
1.axios的get请求开发环境会自动带上cookie,但是生产环境则不会,需要手动设置以下代码: axios.defaults.withCredentials=true; 2.models全局和局 ...
- 02 java包装类型的缓存机制
02 java包装类型的缓存机制 Java 基本数据类型的包装类型的大部分都用到了缓存机制来提升性能. Byte,Short,Integer,Long 这 4 种包装类默认创建了数值 [-128,12 ...
- Multiparty Cardinality Testing for Threshold Private Set-2021:解读
本文记录阅读该论文的笔记. 本文基于阈值加法同态加密方案提出了一个新的允许\(N\)方检查其输入集的交集是否大于\(n-t\)的IPSI方案,该协议的通信复杂度为\(O(Nt^2)\). 注意:\(N ...
- VScode运行总是显示running状态
一.每次点击运行都显示code is already running,而且键盘也没有办法输入 二.解决办法 注意:记得重新启动VScode
- [开源] .Net ORM 访问 Firebird 数据库
前言 Firebird 是一个跨平台的关系数据库系统,目前能够运行在 Windows.linux 和各种 Unix 操作系统上,提供了大部分 SQL-99 标准的功能.它既能作为多用户环境下的数据库服 ...
- Servlet-2获取请求,响应结果
获取请求参数值1)HttpServletRequest ① 该接口是ServletRequest接口的子接口,封装了HTTP请求的相关信息,由Servlet容器创建其实现类对象并传入serv ...
- SpringBoot之MongoDB附件操作
前言 近期自己针对附件上传进一步学习,为了弥足项目中文件上传的漏洞,保证文件上传功能的健壮性和可用性,现在我将自己在这一块的心得总结如下: 一.pom.xml依赖的引入 <dependency& ...
- .NET 使用自带 DI 批量注入服务(Service)和 后台服务(BackgroundService)
今天教大家如何在asp .net core 和 .net 控制台程序中 批量注入服务和 BackgroundService 后台服务 在默认的 .net 项目中如果我们注入一个服务或者后台服务,常规的 ...
- 图像处理——相位恢复(GS,TIE,改进型角谱迭代法)
利用GS,TIE,改进型角谱迭代算法进行相位恢复 角谱传播理论 角谱传播理论可以翻阅傅里叶光学的书,就能找到定量分析的计算公式,可以分析某个平面的角谱垂直传播到另外一个平面的角谱,得到其振幅与相位信息 ...
- 基于gitlab 15.1 pages 搭建内部博客一定行版本
背景 基于 gitlab 15.1版 pages 搭建内部博客,参考官方文档,遇到一个又一个坑.之前看到别人吐槽说 gitlab 官方文档很差,我算是理解了.下面一个个说. 开始 按照官方文档的说法, ...