gpt4 book ai didi

oracle - 如何更改现有表以在 Oracle 中创建范围分区

转载 作者:行者123 更新时间:2023-12-04 08:33:14 25 4
gpt4 key购买 nike

我现有的表有 10 年的数据(我已经转储了)。

我想在表中的一个日期键列上对现有表进行范围分区。

我看到的大多数例子都是 CREATE TABLE..PARTITION BY RANGE...添加新分区。但我的 table 是现有的 table 。

我想我需要一些 ALTER陈述。

ALTER TABLE TABLE_NAME
PARTITION BY RANGE(CREATED_DATE)
PARTITION JAN16 VALUES LESS THAN (01-02-2016),
PARTITION FEB16 VALUES LESS THAN (01-03-2016) AND GREATER THAN(31-01-2016),//OR?
PARTITION MAR16 VALUES BETWEEN (01-03-2016) AND (31-03-2016), //OR?

两个问题。。
  • 我需要 Alter 语句来添加分区机制还是需要使用 create 语句?
  • 保持每个分区只有一个月数据的正确语法是什么。
  • 最佳答案

    因为您的表未分区,您有两个选择:

  • 导出数据,删除表,创建新的分区表,导入数据。
  • 使用拆分然后交换分区方法。 https://oracle-base.com/articles/misc/partitioning-an-existing-table-using-exchange-partition

  • 此外,如果您希望每个月都有新的分区,请阅读有关 SET INTERVAL 的信息。例如:
    CREATE TABLE tst
    (col_date DATE)
    PARTITION BY RANGE (col_date) INTERVAL (NUMTOYMINTERVAL(1, 'MONTH'))
    (PARTITION col_date_min VALUES LESS THAN (TO_DATE('2010-01-01', 'YYYY-MM-DD')));

    关于oracle - 如何更改现有表以在 Oracle 中创建范围分区,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35932771/

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