失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > DM达梦数据库 创建间隔(interval)分区

DM达梦数据库 创建间隔(interval)分区

时间:2020-06-04 08:40:21

相关推荐

DM达梦数据库 创建间隔(interval)分区

oracle11g中引入了间隔分区的功能,通过该功能,可以在输入相应分区的数据时自动创建相应的分区。

在达梦中我们也可以使用间隔分区,不过需要注意的是达梦中的间隔分区使用有以下限制:

仅支持一级范围分区创建间隔分区;只能有一个分区列,且分区列类型为日期或数值;对间隔分区进行SPLIT,只能在间隔范围内进行操作;被SPLIT/MERGE的分区,其左侧分区不再进行自动创建;不相邻的间隔的分区,不能MERGE;表定义不能包含MAXVALUE分区;不允许新增分区;不能删除起始间隔分区;间隔分区表定义语句显示到起始间隔分区为止;自动生成的间隔分区,均不包含边界值;间隔表达式只能为常量或日期间隔函数。日期间隔函数为:NUMTOYMINTERVALNUMTODSINTERVAL;数值常量可以为整型、DEC

类型;MPP 下不支持间隔分区表。

例子:

1、按年/月创建分区,使用NUMTOYMINTERVAL函数:

SQL> CREATE TABLE t_interval12 (3employee_id NUMBER,4employee_name VARCHAR2(20),5birthday DATE )6 7 PARTITION BY RANGE(birthday)8 INTERVAL (NUMTOYMINTERVAL(1,'year'))9 (10 PARTITION partition VALUES LESS THAN(to_date('-01-01','yyyy-mm-dd')),PARTITION partition VALUES LESS THAN(to_date('-01-02','yyyy-mm-dd')));

11 12 操作已执行

已用时间: 3.698(毫秒). 执行号:5.

2、按日创建分区,使用NUMTODSINTERVAL函数:

这里需要注意:

如果在达梦中没有设置COMPATIBLE_MODE参数为2,即兼容oracle的模式,那么创建按日分区时如果分区列使用date类型会出现报错:

而使用timestamp类型则不会报错:

但是为了兼容oracle,这里我们还是建议修改COMPATIBLE_MODE参数,然后就可以在date类型列上按照天来分区了:

SQL> create table sales2 (sales_id number,sales_dt date)3 4 5 6 partition by range (sales_dt)7 INTERVAL (NUMTODSINTERVAL(1,'day'))8 (9 partition p090101 values less than (to_date('-06-30','yyyy-mm-dd'))10 );操作已执行已用时间: 5.252(毫秒). 执行号:4.

如果觉得《DM达梦数据库 创建间隔(interval)分区》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。