KingbaseES 分区表与 Oracle 分区表对于空值的处理差异

 

一、对于null 值处理

1、Oracle

分区字段允许为空,只要存在maxvalue 分区,值就可以插入。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
SQL> create table t1(id number,data varchar(9)) partition by range(id)
  2  (
  3    partition p1 values less than (1000),
  4    partition p2 values less than (maxvalue)
  5  );
 
Table created.
 
SQL> insert into t1(data) values('a');
 
1 row created.
 
SQL> commit;
 
Commit complete.
 
SQL> select * from t1 partition(p2);
 
        ID DATA
---------- ---------
           a

2、KingbaseES

允许分区列值为空,但需要 Default 分区

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
test=# create table t1(id integer,name text) partition by range(id);
CREATE TABLE
test=# create table t1_p1 partition of t1 for values from (minvalue) to (1000);
CREATE TABLE
test=# create table t1_p2 partition of t1 for values from (1000) to (maxvalue);
CREATE TABLE
test=#
test=# insert into t1(name) values('a');
ERROR:  no partition of relation "t1" found for row
DETAIL:  Partition key of the failing row contains (id) = (null).
 
test=# create table t1_default partition of t1 default;
CREATE TABLE
test=# insert into t1(name) values('a');
INSERT 0 1

  

 

posted @   KINGBASE研究院  阅读(111)  评论(0编辑  收藏  举报
编辑推荐:
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
点击右上角即可分享
微信分享提示