云数据库 GaussDB-ALTER TABLE SUBPARTITION:示例
时间:2025-02-12 15:05:45
示例
- 重命名分区。
--创建二级分区表tbl_rge_lst_test。gaussdb=# CREATE TABLE tbl_lst_reg_test( area_id char(5), sdate char(8), eid char(5), sales_amt int) PARTITION BY LIST(area_id) SUBPARTITION BY RANGE(sdate)( PARTITION p_1001 VALUES ('1001')( SUBPARTITION p_1001_201901 VALUES LESS THAN ('20190201'), SUBPARTITION p_1001_201902 VALUES LESS THAN ('20190301'), SUBPARTITION p_1001_201903 VALUES LESS THAN ('20190401') ), PARTITION p_1002 VALUES ('1002')( SUBPARTITION p_1002_201901 VALUES LESS THAN ('20190201'), SUBPARTITION p_1002_201902 VALUES LESS THAN ('20190301'), SUBPARTITION p_100w VALUES LESS THAN ('20190401') ) );--将子分区p_100w名称修改为p_1002_201903。gaussdb=# ALTER TABLE tbl_lst_reg_test RENAME SUBPARTITION p_100w TO p_1002_201903;--查询。gaussdb=# SELECT table_name,partition_name,subpartition_name FROM db_tab_subpartitions WHERE table_name = 'tbl_lst_reg_test' AND partition_name = 'p_1002'; table_name | partition_name | subpartition_name ------------------+----------------+------------------- tbl_lst_reg_test | p_1002 | p_1002_201901 tbl_lst_reg_test | p_1002 | p_1002_201902 tbl_lst_reg_test | p_1002 | p_1002_201903(3 rows)
- 移动分区表空间。
--创建表空间tbs_data1。gaussdb=# CREATE TABLESPACE tbs_data1 RELATIVE LOCATION 'tablespace/tbs_data1';--移动二级分区p_1002_201901至表空间tbs_data1。gaussdb=# ALTER TABLE tbl_lst_reg_test MOVE SUBPARTITION p_1002_201901 TABLESPACE tbs_data1;--移动二级分区p_1002_201902至表空间tbs_data1。gaussdb=# ALTER TABLE tbl_lst_reg_test MOVE SUBPARTITION FOR ('1002','20190325') TABLESPACE tbs_data1;--查询修改后的二级分区的表空间。gaussdb=# SELECT subpartition_name,tablespace_name FROM db_tab_subpartitions WHERE subpartition_name IN ('p_1002_201901','p_1002_201903'); subpartition_name | tablespace_name -------------------+----------------- p_1002_201901 | tbs_data1 p_1002_201903 | tbs_data1(2 rows)
- 分区交换。
--创建普通表并插入数据。gaussdb=# CREATE TABLE tbl_test( area_id char(5), sdate char(8), eid char(5), sales_amt int);gaussdb=# INSERT INTO tbl_test VALUES ('1002','20190326','00001',9000);gaussdb=# INSERT INTO tbl_test VALUES ('1002','20190326','00002',7500);gaussdb=# INSERT INTO tbl_test VALUES ('1002','20190326','00003',6000);--在分区表中插入数据。gaussdb=# INSERT INTO tbl_lst_reg_test VALUES ('1002','20190301','00001',126);--执行分区交换。gaussdb=# ALTER TABLE tbl_lst_reg_test EXCHANGE SUBPARTITION (p_1002_201903) WITH TABLE tbl_test;--查询数据发现表和分区的数据发生了交换。gaussdb=# SELECT * FROM tbl_lst_reg_test; area_id | sdate | eid | sales_amt ---------+----------+-------+----------- 1002 | 20190326 | 00001 | 9000 1002 | 20190326 | 00002 | 7500 1002 | 20190326 | 00003 | 6000(3 rows)gaussdb=# SELECT * FROM tbl_test; area_id | sdate | eid | sales_amt ---------+----------+-------+----------- 1002 | 20190301 | 00001 | 126(1 row)--查看分区表空间也发生了交换。gaussdb=# SELECT subpartition_name,tablespace_name FROM db_tab_subpartitions WHERE subpartition_name = 'p_1002_201903'; subpartition_name | tablespace_name -------------------+-------------------- p_1002_201903 | DEFAULT TABLESPACE(1 row)
- 分区合并。
--分区合并。gaussdb=# ALTER TABLE tbl_lst_reg_test MERGE SUBPARTITIONS p_1002_201901,p_1002_201902,p_1002_201903 INTO SUBPARTITION p_1002_20191;--查询二级分区信息。gaussdb=# SELECT table_name,partition_name,subpartition_name FROM db_tab_subpartitions WHERE table_name = 'tbl_lst_reg_test'; table_name | partition_name | subpartition_name ------------------+----------------+------------------- tbl_lst_reg_test | p_1001 | p_1001_201901 tbl_lst_reg_test | p_1001 | p_1001_201902 tbl_lst_reg_test | p_1001 | p_1001_201903 tbl_lst_reg_test | p_1002 | p_1002_20191(4 rows)
- 添加分区。
--添加一个一级分区。gaussdb=# ALTER TABLE tbl_lst_reg_test ADD PARTITION p_1003 VALUES('1003') (SUBPARTITION p_1003_201901 VALUES LESS THAN ('20190201')); --在特定的一级分区中添加二级分区。gaussdb=# ALTER TABLE tbl_lst_reg_test MODIFY PARTITION p_1003 ADD SUBPARTITION p_1003_201902 VALUES LESS THAN ('20190301');--查询分区信息。gaussdb=# SELECT table_name,partition_name,subpartition_name FROM db_tab_subpartitions WHERE table_name = 'tbl_lst_reg_test'; table_name | partition_name | subpartition_name ------------------+----------------+------------------- tbl_lst_reg_test | p_1001 | p_1001_201901 tbl_lst_reg_test | p_1001 | p_1001_201902 tbl_lst_reg_test | p_1001 | p_1001_201903 tbl_lst_reg_test | p_1002 | p_1002_20191 tbl_lst_reg_test | p_1003 | p_1003_201901 tbl_lst_reg_test | p_1003 | p_1003_201902(6 rows)
- 删除分区。
--删除二级分区p_1003_201902。gaussdb=# ALTER TABLE tbl_lst_reg_test DROP SUBPARTITION p_1003_201902;--查看。gaussdb=# SELECT table_name,partition_name,subpartition_name FROM db_tab_subpartitions WHERE table_name = 'tbl_lst_reg_test' AND partition_name = 'p_1003'; table_name | partition_name | subpartition_name ------------------+----------------+------------------- tbl_lst_reg_test | p_1003 | p_1003_201901(1 row)--删除一级分区p_1003。gaussdb=# ALTER TABLE tbl_lst_reg_test DROP PARTITION p_1003;--查看。gaussdb=# SELECT table_name,partition_name,subpartition_name FROM db_tab_subpartitions WHERE table_name = 'tbl_lst_reg_test'; table_name | partition_name | subpartition_name ------------------+----------------+------------------- tbl_lst_reg_test | p_1001 | p_1001_201901 tbl_lst_reg_test | p_1001 | p_1001_201902 tbl_lst_reg_test | p_1001 | p_1001_201903 tbl_lst_reg_test | p_1002 | p_1002_20191(4 rows)
- 切割分区。
--指定切割点切割分区。gaussdb=# ALTER TABLE tbl_lst_reg_test SPLIT SUBPARTITION p_1002_20191 AT ('20190201') INTO (SUBPARTITION p_1002_201901,SUBPARTITION p_1002_20191) UPDATE GLOBAL INDEX;--不指定切割垫切割分区。gaussdb=# ALTER TABLE tbl_lst_reg_test SPLIT SUBPARTITION p_1002_20191 INTO ( SUBPARTITION p_1002_201902 VALUES LESS THAN ('20190301'), SUBPARTITION p_1002_201903) UPDATE GLOBAL INDEX;--查询分区信息。gaussdb=# SELECT table_name,partition_name,subpartition_name,high_value FROM db_tab_subpartitions; table_name | partition_name | subpartition_name | high_value ------------------+----------------+-------------------+------------ tbl_lst_reg_test | p_1001 | p_1001_201901 | 20190201 tbl_lst_reg_test | p_1001 | p_1001_201902 | 20190301 tbl_lst_reg_test | p_1001 | p_1001_201903 | 20190401 tbl_lst_reg_test | p_1002 | p_1002_201901 | 20190201 tbl_lst_reg_test | p_1002 | p_1002_201902 | 20190301 tbl_lst_reg_test | p_1002 | p_1002_201903 | 20190401(6 rows)
- 清空分区数据。
--清空一级分区。gaussdb=# ALTER TABLE tbl_lst_reg_test TRUNCATE PARTITION p_1001 UPDATE GLOBAL INDEX;--清空二级分区。gaussdb=# ALTER TABLE tbl_lst_reg_test TRUNCATE SUBPARTITION p_1002_201903 UPDATE GLOBAL INDEX;--删除表。gaussdb=# DROP TABLE tbl_lst_reg_test;gaussdb=# DROP TABLE tbl_test;--删除表空间。gaussdb=# DROP TABLESPACE tbs_data1;
support.huaweicloud.com/centralized-devg-v8-gaussdb/gaussdb-42-0513.html
看了此文的人还看了
CDN加速
GaussDB
文字转换成语音
免费的服务器
如何创建网站
域名网站购买
私有云桌面
云主机哪个好
域名怎么备案
手机云电脑
SSL证书申请
云点播服务器
免费OCR是什么
电脑云桌面
域名备案怎么弄
语音转文字
文字图片识别
云桌面是什么
网址安全检测
网站建设搭建
国外CDN加速
SSL免费证书申请
短信批量发送
图片OCR识别
云数据库MySQL
个人域名购买
录音转文字
扫描图片识别文字
OCR图片识别
行驶证识别
虚拟电话号码
电话呼叫中心软件
怎么制作一个网站
Email注册网站
华为VNC
图像文字识别
企业网站制作
个人网站搭建
华为云计算
免费租用云托管
云桌面云服务器
ocr文字识别免费版
HTTPS证书申请
图片文字识别转换
国外域名注册商
使用免费虚拟主机
云电脑主机多少钱
鲲鹏云手机
短信验证码平台
OCR图片文字识别
SSL证书是什么
申请企业邮箱步骤
免费的企业用邮箱
云免流搭建教程
域名价格
推荐文章
- GaussDB主键生成_GaussDB存储过程_高斯数据库主键生成_华为云
- 分布式云原生集合示例_华为云分布式云原生_华为云UCS集合示例
- GaussDB行转列_数据中台架构pdf_高斯数据库行转列_华为云
- GaussDB Core_gaussdb内核_高斯数据库Core_华为云
- GaussDB查看表大小_GaussDB查询表空间_高斯数据库查看表大小-华为云
- GaussDB行列混合存储_GaussDB规划存储模型_高斯数据库行列混合存储-华为云
- GaussDB递归_层次递归查询函数_高斯数据库递归-华为云
- GaussDB查看表字段_GaussDB查看表所在节点_高斯数据库查看表字段-华为云
- RDS for MySQL审计日志_开启日志审计_数据库审计_华为云数据库RDS
- 数据治理中心_数据架构_数据架构使用示例-华为云
ServerLess102