gpt4 book ai didi

database - 我们可以根据两列对 oracle 数据库进行分区吗

转载 作者:搜寻专家 更新时间:2023-10-30 23:26:12 24 4
gpt4 key购买 nike

我正在为一个新项目工作,该项目需要根据两列(城市和地区)对表进行分区。 oracle 数据库支持吗?

我之前从事的项目是在创建表时根据一列对数据库进行分区。但我不知道如何使用两列进行分区,我们是使用相同的语义还是不同的语义

CREATE TABLE TEST (....)
PARTITION BY RANGE (date1) INTERVAL (NUMTOYMINTERVAL(1, 'MONTH'))
(
PARTITION TEST_INITIAL VALUES less than (DATE '2000-01-01')
);

最佳答案

如果您有 Oracle 12.2 或更高版本,这很容易。使用自动分区。例如,

CREATE TABLE my_auto_partitioned_table
( id NUMBER,
city_name VARCHAR2(80),
area_name VARCHAR2(80),
other_data VARCHAR2(400) )
PARTITION BY LIST ( city_name, area_name) AUTOMATIC
( PARTITION p_dummy VALUES (null, null) )
;

在 12.2 之前,可以使用 LIST-LIST 分区,但这真的很痛苦,因为您必须预先创建所有分区和子分区。例如,

CREATE TABLE my_partitioned_table 
( id NUMBER,
city_name VARCHAR2(80),
area_name VARCHAR2(80),
other_data VARCHAR2(400) )
PARTITION BY LIST ( city_name )
SUBPARTITION BY LIST ( area_name )
-- if your area names are generic (e.g., "north"/"south" or "downtown"/"suburbs"),
-- you can use a SUBPARTITION TEMPLATE clause right here...
( PARTITION p_philadelpha VALUES ( 'PHILADELPHIA')
( SUBPARTITION p_philly1 VALUES ('SOUTH PHILLY','WEST PHILLY'),
SUBPARTITION p_philly2 VALUES ('NORTH PHILLY','OLD CITY')
),
PARTITION p_new_york VALUES ( 'NEW YORK')
( SUBPARTITION p_nyc1 VALUES ('SOHO'),
SUBPARTITION p_nyc2 VALUES ('HELL''S KITCHEN')
)
);

关于database - 我们可以根据两列对 oracle 数据库进行分区吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57616680/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com