我的编程空间,编程开发者的网络收藏夹
学习永远不晚

数据库中如何将按月分区的表改为按天分区

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

数据库中如何将按月分区的表改为按天分区

这篇文章给大家分享的是有关数据库中如何将按月分区的表改为按天分区的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。

一般来说,按月分区的表都是range分区,下面来介绍将按月分区改为按天分区的方法:

1.range间隔分区的情况


间隔分区无法手工add partition ,会出现如下报错:

ORA-14760 ADD PARTITION is not permitted on Interval partitioned objects 
思路是先改为非间隔(Interval)分区 ,然后手工按天add partition ,并建议再改成按天间隔,详见如下案列:
create table tmp_test_range
(
id number,
name varchar2(30),
int_date date
)
PARTITION BY RANGE(int_date)
interval(NUMTOYMINTERVAL (1,'MONTH'))
(
partition P201511 values less than(to_date('20151201','yyyymmdd')),
partition P201512 values less than(to_date('20160101','yyyymmdd')));


ALTER TABLE tmp_test_range SET INTERVAL ();

alter table tmp_test_range add partition P20160101 values less than(to_date('20160102','yyyymmdd'));

ALTER TABLE tmp_test_range SET INTERVAL (NUMTODSINTERVAL(1,'DAY'));


2.range非间隔分区的情况

思路是删除一些还没有使用的月分区,然后手工按天add partition ,并建议再改成按天间隔


create table tmp_test_range
(
id number,
name varchar2(30),
int_date date
)
PARTITION BY RANGE(int_date)
(
partition P201511 values less than(to_date('20151201','yyyymmdd')),
partition P201512 values less than(to_date('20160101','yyyymmdd')),

partition P201601 values less than(to_date('20160201','yyyymmdd')));

alter table tmp_test_range drop partition P201601;

alter table tmp_test_range add partition P20160101 values less than(to_date('20160102','yyyymmdd')); --新增一个起始分区

ALTER TABLE tmp_test_range SET INTERVAL (NUMTODSINTERVAL(1,'DAY')); 

感谢各位的阅读!关于“数据库中如何将按月分区的表改为按天分区”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

数据库中如何将按月分区的表改为按天分区

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

已知如下数据库表,写出查询各门课的分数最高者的SQL语句,要求格式为“科目,学生名,分数”,并按科目Id排序

题目描述 在某笔试题中遇到了这样的题目,之前学过数据库原理,但是这综合性太强,一下子犯了难。 解决过程 在数据库中建立上述表,以验证写的SQL对不对 平台:Navicate SQL 16 for MySQL 尝试写SQL查询 尝
2023-08-19

SQLServer 错误 2579 表错误:对象 ID O_ID,索引 ID I_ID,分区 ID PN_ID,分配单元 ID A_ID(类型为 TYPE)中的区 P_ID 超出了此数据库的范围。 故

详细信息 Attribute 值 产品名称 SQL Server 事件 ID 2579 事件源 MSSQLSERVER 组件 SQLEngine 符号名称 DBCC_EXTENT_OUT_OF_RANGE ...
SQLServer 错误 2579 表错误:对象 ID O_ID,索引 ID I_ID,分区 ID PN_ID,分配单元 ID A_ID(类型为 TYPE)中的区 P_ID 超出了此数据库的范围。 故
2023-11-05

oracle 数据库 中 如何将不带汉字的日期格式转换成带“年月日时分秒”格式的日期

通常我们在oracle中写日期格式化是这样的 to_date(时间,"yyyy-mm-dd") 但是,有时候也会遇到一些别样的需求,比如这样 : 让你按"xxxx年xx月xx日 xx时xx分xx秒"的格式来显示时间 对于初次接触的你,有可能写完会出现这样的情
oracle 数据库 中 如何将不带汉字的日期格式转换成带“年月日时分秒”格式的日期
2020-05-13

编程热搜

目录