#openGauss #入门 #安装 #数据库 #开源
知识来源:docs-opengauss.osinfra.cn/zh/
示例4:以“START(partition_value) END (partition_value) EVERY (interval_value)”方式创建START END范围分区表metro_ride_record。含有7个分区,分区键为INTEGER类型。总范围是ride_stations_number<21, 每3站为一个分区。
--创建分区表metro_ride_record。记录乘车人、上下车站点、乘坐站点数量。并按照乘坐站点数量,每3站建立一个分区。
openGauss=# CREATE TABLE metro_ride_record
(
record_number INTEGER,
name CHAR(20),
enter_station CHAR(20),
leave_station CHAR(20),
ride_stations_number INTEGER
)
PARTITION BY RANGE(ride_stations_number)
(
PARTITION cost START(3) END(21) EVERY (3)
);
-- 数据插入分区。
openGauss=# insert into metro_ride_record values('120101','Brain','Tung Chung','Tsing Yi',2);
openGauss=# insert into metro_ride_record values('120102','David','Po Lam','Yau Tong',4);
openGauss=# insert into metro_ride_record values('120103','Ben','Yau Ma Tei','Wong Tai Sin',6);
openGauss=# insert into metro_ride_record values('120104','Carl','Tai Wo Hau','Prince Edward',8);
openGauss=# insert into metro_ride_record values('120105','Henry','Admiralty','Lai King',10);
openGauss=# insert into metro_ride_record values('120106','Jack','Chai Wan','Central',12);
openGauss=# insert into metro_ride_record values('120107','Jerry','Central','Tai Wo Hau',14);
openGauss=# insert into metro_ride_record values('120108','Alan','Diamond Hill','Kwai Hing',16);
openGauss=# insert into metro_ride_record values('120109','Eric','Jordan','Shek Kip Mei',18);
openGauss=# insert into metro_ride_record values('120110','Frank','Lok Fu','Sunny Bay',20);
--查询metro_ride_record的数据。
openGauss=# SELECT * FROM metro_ride_record;
record_number | name | enter_station | leave_station | ride_stations_number
---------------+----------------------+----------------------+----------------------+----------------------
120101 | Brain | Tung Chung | Tsing Yi | 2
120102 | David | Po Lam | Yau Tong | 4
120103 | Ben | Yau Ma Tei | Wong Tai Sin | 6
120104 | Carl | Tai Wo Hau | Prince Edward | 8
120105 | Henry | Admiralty | Lai King | 10
120106 | Jack | Chai Wan | Central | 12
120107 | Jerry | Central | Tai Wo Hau | 14
120108 | Alan | Diamond Hill | Kwai Hing | 16
120109 | Eric | Jordan | Shek Kip Mei | 18
120110 | Frank | Lok Fu | Sunny Bay | 20
(10 rows)
“PARTITION cost START(3) END(21) EVERY (3)”是第一个分区定义,且该定义有START值,则范围(MINVALUE, 3)将自动作为第一个实际分区,其名称为“cost_0”。
其余分区依次为“cost_1”、...、“cost_6”.
--查询metro_ride_record的cost_0分区数据。
openGauss=# SELECT * FROM metro_ride_record PARTITION (cost_0);
record_number | name | enter_station | leave_station | ride_stations_number
---------------+----------------------+----------------------+----------------------+----------------------
120101 | Brain | Tung Chung | Tsing Yi | 2
(1 row)
--查询metro_ride_record的cost_1分区数据。
openGauss=# SELECT * FROM metro_ride_record PARTITION (cost_1);
record_number | name | enter_station | leave_station | ride_stations_number
---------------+----------------------+----------------------+----------------------+----------------------
120102 | David | Po Lam | Yau Tong | 4
(1 row)
--查询metro_ride_record的cost_6分区数据。
openGauss=# SELECT * FROM metro_ride_record PARTITION (cost_6);
record_number | name | enter_station | leave_station | ride_stations_number
---------------+----------------------+----------------------+----------------------+----------------------
120109 | Eric | Jordan | Shek Kip Mei | 18
120110 | Frank | Lok Fu | Sunny Bay | 20
(2 rows)
#openGauss #入门 #安装 #数据库 #开源