将 table 与一个分区中的一个值和另一个分区中的其余值进行分区
Partitioning a table with one value in one partition and the rest in another partition
例如,我有一个 table 名称 Emp,它有 empname、designation、salary 作为列。我希望这个 table 有 2 个分区,例如在一个分区中作为经理的员工列表,在一个分区中休息(工程师、员工、文员)。
有人可以帮助创建它吗
请参考以下URL和示例:
例如,以下 SQL 语句将 partitioned by range table sales splits 的 sales_Q4_2007 分区拆分为对应于下一年的季度的五个分区。在此示例中,分区 sales_Q4_2008 隐式成为拆分分区的上限。
ALTER TABLE sales SPLIT PARTITION sales_Q4_2007 INTO
( PARTITION sales_Q4_2007 VALUES LESS THAN (TO_DATE('01-JAN-2008','dd-MON-yyyy')),
PARTITION sales_Q1_2008 VALUES LESS THAN (TO_DATE('01-APR-2008','dd-MON-yyyy')),
PARTITION sales_Q2_2008 VALUES LESS THAN (TO_DATE('01-JUL-2008','dd-MON-yyyy')),
PARTITION sales_Q3_2008 VALUES LESS THAN (TO_DATE('01-OCT-2008','dd-MON-yyyy')),
PARTITION sales_Q4_2008);
对于按列表分区的示例 table 客户,以下语句将分区 Europe 拆分为三个分区。
ALTER TABLE list_customers SPLIT PARTITION Europe INTO
(PARTITION western-europe VALUES ('GERMANY', 'FRANCE'),
PARTITION southern-europe VALUES ('ITALY'),
PARTITION rest-europe);
https://docs.oracle.com/database/121/VLDBG/GUID-01C14320-0D7B-48BE-A5AD-003DDA761277.htm
你会对此有所了解。
在这种情况下,您将不得不使用基于 LIST 的分区。创建一个 pertition where ROLE = MANAGER 并创建另一个默认分区。这是一个可以帮助你的例子。
例子
CREATE TABLE EMPLOYEE (EMP_ID VARCHAR2(25),
EMP_NAME VARCHAR2(250),
ROLE VARCHAR2(100)
)
PARTITION BY LIST (ROLE)
(
PARTITION part_managers
VALUES ('MANAGER'),
PARTITION part_others
VALUES (DEFAULT)
);
例如,我有一个 table 名称 Emp,它有 empname、designation、salary 作为列。我希望这个 table 有 2 个分区,例如在一个分区中作为经理的员工列表,在一个分区中休息(工程师、员工、文员)。
有人可以帮助创建它吗
请参考以下URL和示例: 例如,以下 SQL 语句将 partitioned by range table sales splits 的 sales_Q4_2007 分区拆分为对应于下一年的季度的五个分区。在此示例中,分区 sales_Q4_2008 隐式成为拆分分区的上限。
ALTER TABLE sales SPLIT PARTITION sales_Q4_2007 INTO
( PARTITION sales_Q4_2007 VALUES LESS THAN (TO_DATE('01-JAN-2008','dd-MON-yyyy')),
PARTITION sales_Q1_2008 VALUES LESS THAN (TO_DATE('01-APR-2008','dd-MON-yyyy')),
PARTITION sales_Q2_2008 VALUES LESS THAN (TO_DATE('01-JUL-2008','dd-MON-yyyy')),
PARTITION sales_Q3_2008 VALUES LESS THAN (TO_DATE('01-OCT-2008','dd-MON-yyyy')),
PARTITION sales_Q4_2008);
对于按列表分区的示例 table 客户,以下语句将分区 Europe 拆分为三个分区。
ALTER TABLE list_customers SPLIT PARTITION Europe INTO
(PARTITION western-europe VALUES ('GERMANY', 'FRANCE'),
PARTITION southern-europe VALUES ('ITALY'),
PARTITION rest-europe);
https://docs.oracle.com/database/121/VLDBG/GUID-01C14320-0D7B-48BE-A5AD-003DDA761277.htm
你会对此有所了解。
在这种情况下,您将不得不使用基于 LIST 的分区。创建一个 pertition where ROLE = MANAGER 并创建另一个默认分区。这是一个可以帮助你的例子。
例子
CREATE TABLE EMPLOYEE (EMP_ID VARCHAR2(25),
EMP_NAME VARCHAR2(250),
ROLE VARCHAR2(100)
)
PARTITION BY LIST (ROLE)
(
PARTITION part_managers
VALUES ('MANAGER'),
PARTITION part_others
VALUES (DEFAULT)
);