阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

Oracle 12c中分区(Partition)新特性之TRUNCATEPARTITION和EXCHANGE PARTITION级联功能

383次阅读
没有评论

共计 3259 个字符,预计需要花费 9 分钟才能阅读完成。

TRUNCATE [SUB]PARTITION 和 EXCHANGE [SUB]PARTITION 命令如今可以包括 CASCADE 子句,从而允许参照分区表向下级联这些操作。为确保该选项正常,相关外键也必须包括 DELETE 子句。

1.        设置

下面创建一个分区父表(T1)和一个参照的分区子表(T2)。每个分区被插入一行数据。

DROP TABLE t2 PURGE;

DROP TABLE t1 PURGE;

CREATE TABLE t1 (

  id          NUMBER,

  info        VARCHAR2(50),

  crt_dateDATE,

 CONSTRAINT t1_pk PRIMARY KEY (id)

)

PARTITION BY RANGE (crt_date)

(PARTITION part_2014 VALUES LESS THAN(TO_DATE(’01/01/2015′, ‘DD/MM/YYYY’)) TABLESPACE users,

 PARTITION part_2015 VALUES LESS THAN(TO_DATE(’01/01/2016′, ‘DD/MM/YYYY’)) TABLESPACE users);

CREATE TABLE t2 (

 id            NUMBER NOT NULL,

 t1_id          NUMBER NOT NULL,

  info          VARCHAR2(50),

  crt_date  DATE,

 CONSTRAINT t2_pk PRIMARY KEY (id),

  CONSTRAINTt2_t1_fk FOREIGN KEY (t1_id) REFERENCES t1 (id) ON DELETE CASCADE

)

PARTITION BY REFERENCE (t2_t1_fk);

INSERT INTO t1 VALUES (1, ‘t1 data’,TO_DATE(’05/05/2014′, ‘DD/MM/YYYY’));

INSERT INTO t1 VALUES (2, ‘t1 data’,TO_DATE(’05/05/2015′, ‘DD/MM/YYYY’));

INSERT INTO t2 VALUES (1, 1, ‘t2 data’,TO_DATE(’05/05/2014′, ‘DD/MM/YYYY’));

INSERT INTO t2 VALUES (2, 2, ‘t2 data’,TO_DATE(’05/05/2015′, ‘DD/MM/YYYY’));

COMMIT;

EXEC DBMS_STATS.gather_table_stats(USER,’t1′);

EXEC DBMS_STATS.gather_table_stats(USER,’t2′);

SELECT table_name,

      partition_name,

      num_rows

FROM  user_tab_partitions

ORDER BY 1,2;

TABLE_NAME          PARTITION_NAME        NUM_ROWS

——————– ——————————

T1                  PART_2014                    1

T1                  PART_2015                    1

T2                  PART_2014                    1

T2                  PART_2015                    1

SQL>

2.        TRUNCATE PARTITION … CASCADE

通过 TRUNCATE PARTITION … CASCADE 命令,我们可以清空父表分区和子表分区。

ALTER TABLE t1 TRUNCATE PARTITION part_2014CASCADE UPDATE INDEXES;

EXEC DBMS_STATS.gather_table_stats(USER,’t1′);

EXEC DBMS_STATS.gather_table_stats(USER, ‘t2’);

SELECT table_name,

      partition_name,

      num_rows

FROM  user_tab_partitions

ORDER BY 1,2;

TABLE_NAME          PARTITION_NAME        NUM_ROWS

——————– ——————————

T1                  PART_2014                    0

T1                  PART_2015                    1

T2                  PART_2014                    0

T2                  PART_2015                    1

SQL>

3.        EXCHANGE PARTITION … CASCADE

为了测试 EXCHANGE PARTITION …CASCADE 命令,创建如下非分区表。为确保层级功能正常,从交换级别开始往下的所有表必须存在。

DROP TABLE t2_temp;

DROP TABLE t1_temp;

CREATE TABLE t1_temp (

 id          NUMBER,

  info  VARCHAR2(50),

  crt_dateDATE,

 CONSTRAINT t1_temp_pk PRIMARY KEY (id)

);

CREATE TABLE t2_temp (

 id            NUMBER NOT NULL,

 t1_id          NUMBER NOT NULL,

  info    VARCHAR2(50),

  crt_date  DATE,

 CONSTRAINT t2_temp_pk PRIMARY KEY (id),

 CONSTRAINT t2_temp_t1_temp_fk FOREIGN KEY (t1_id) REFERENCES t1_temp(id) ON DELETE CASCADE

);

INSERT INTO t1_temp VALUES (2, ‘t1_temp data’,TO_DATE(’05/05/2015′, ‘DD/MM/YYYY’));

INSERT INTO t2_temp VALUES (2, 2, ‘t2_tempdata’, TO_DATE(’05/05/2015′, ‘DD/MM/YYYY’));

COMMIT;

如下交换父表和子表分区后,检查表中数据。

— 交换分区

ALTER TABLE t1

 EXCHANGE PARTITION part_2015

  WITHTABLE t1_temp

 CASCADE

  UPDATEINDEXES;

— 检查分区中的数据

COLUMN t1_info FORMAT A20

COLUMN t2_info FORMAT A20

SELECT t1.info AS t1_info,

      t2.info AS t2_info

FROM  t1

      JOIN t2 ON t2.t1_id = t1.id;

T1_info              T2_info

——————– ——————–

t1_temp data          t2_temp data

SQL>

— 检查临时表中的数据。

COLUMN t1_temp_info FORMAT A20

COLUMN t2_temp_info FORMAT A20

SELECT t1_temp.info AS t1_temp_info,

      t2_temp.info AS t2_temp_info

FROM  t1_temp

      JOIN t2_temp ON t2_temp.t1_id = t1_temp.id;

T1_TEMP_info        T2_TEMP_info

——————– ——————–

t1 data              t2 data

SQL>

更多 Oracle 相关信息见 Oracle 专题页面 http://www.linuxidc.com/topicnews.aspx?tid=12

本文永久更新链接地址 :http://www.linuxidc.com/Linux/2017-01/140026.htm

正文完
星哥玩云-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-22发表,共计3259字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中

星哥玩云

星哥玩云
星哥玩云
分享互联网知识
用户数
4
文章数
19348
评论数
4
阅读量
7800528
文章搜索
热门文章
开发者必备神器:阿里云 Qoder CLI 全面解析与上手指南

开发者必备神器:阿里云 Qoder CLI 全面解析与上手指南

开发者必备神器:阿里云 Qoder CLI 全面解析与上手指南 大家好,我是星哥。之前介绍了腾讯云的 Code...
星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛 NAS-6:抖音视频同步工具,视频下载自动下载保存 前言 各位玩 NAS 的朋友好,我是星哥!...
云服务器部署服务器面板1Panel:小白轻松构建Web服务与面板加固指南

云服务器部署服务器面板1Panel:小白轻松构建Web服务与面板加固指南

云服务器部署服务器面板 1Panel:小白轻松构建 Web 服务与面板加固指南 哈喽,我是星哥,经常有人问我不...
我把用了20年的360安全卫士卸载了

我把用了20年的360安全卫士卸载了

我把用了 20 年的 360 安全卫士卸载了 是的,正如标题你看到的。 原因 偷摸安装自家的软件 莫名其妙安装...
星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

星哥带你玩飞牛 NAS-3:安装飞牛 NAS 后的很有必要的操作 前言 如果你已经有了飞牛 NAS 系统,之前...
阿里云CDN
阿里云CDN-提高用户访问的响应速度和成功率
随机文章
每天一个好玩的网站-手机博物馆-CHAZ 3D Experience

每天一个好玩的网站-手机博物馆-CHAZ 3D Experience

每天一个好玩的网站 - 手机博物馆 -CHAZ 3D Experience 一句话介绍:一个用 3D 方式重温...
【1024程序员】我劝你赶紧去免费领一个AWS、华为云等的主机

【1024程序员】我劝你赶紧去免费领一个AWS、华为云等的主机

【1024 程序员】我劝你赶紧去免费领一个 AWS、华为云等的主机 每年 10 月 24 日,程序员们都会迎来...
【开源神器】微信公众号内容单篇、批量下载软件

【开源神器】微信公众号内容单篇、批量下载软件

【开源神器】微信公众号内容单篇、批量下载软件 大家好,我是星哥,很多人都希望能高效地保存微信公众号的文章,用于...
亚马逊云崩完,微软云崩!当全球第二大云“摔了一跤”:Azure 宕机背后的配置风险与警示

亚马逊云崩完,微软云崩!当全球第二大云“摔了一跤”:Azure 宕机背后的配置风险与警示

亚马逊云崩完,微软云崩!当全球第二大云“摔了一跤”:Azure 宕机背后的配置风险与警示 首先来回顾一下 10...
星哥带你玩飞牛NAS-14:解锁公网自由!Lucky功能工具安装使用保姆级教程

星哥带你玩飞牛NAS-14:解锁公网自由!Lucky功能工具安装使用保姆级教程

星哥带你玩飞牛 NAS-14:解锁公网自由!Lucky 功能工具安装使用保姆级教程 作为 NAS 玩家,咱们最...

免费图片视频管理工具让灵感库告别混乱

一言一句话
-「
手气不错
每天一个好玩的网站-手机博物馆-CHAZ 3D Experience

每天一个好玩的网站-手机博物馆-CHAZ 3D Experience

每天一个好玩的网站 - 手机博物馆 -CHAZ 3D Experience 一句话介绍:一个用 3D 方式重温...
150元打造低成本NAS小钢炮,捡一块3865U工控板

150元打造低成本NAS小钢炮,捡一块3865U工控板

150 元打造低成本 NAS 小钢炮,捡一块 3865U 工控板 一块二手的熊猫 B3 工控板 3865U,搭...
三大开源投屏神器横评:QtScrcpy、scrcpy、escrcpy 谁才是跨平台控制 Android 的最优解?

三大开源投屏神器横评:QtScrcpy、scrcpy、escrcpy 谁才是跨平台控制 Android 的最优解?

  三大开源投屏神器横评:QtScrcpy、scrcpy、escrcpy 谁才是跨平台控制 Andr...
星哥带你玩飞牛NAS-16:飞牛云NAS换桌面,fndesk图标管理神器上线!

星哥带你玩飞牛NAS-16:飞牛云NAS换桌面,fndesk图标管理神器上线!

  星哥带你玩飞牛 NAS-16:飞牛云 NAS 换桌面,fndesk 图标管理神器上线! 引言 哈...
星哥带你玩飞牛NAS-5:飞牛NAS中的Docker功能介绍

星哥带你玩飞牛NAS-5:飞牛NAS中的Docker功能介绍

星哥带你玩飞牛 NAS-5:飞牛 NAS 中的 Docker 功能介绍 大家好,我是星哥,今天给大家带来如何在...