nomenclatura de partición automática para particionamiento por intervalo
Tengo una tabla como esta:
CREATE TABLE data_audit(
id_col NUMBER(*,0) NOT NULL ENABLE,
col_2 VARCHAR2(10) NOT NULL ENABLE,
col_3 NUMBER(*,0) NOT NULL ENABLE,
col_4 VARCHAR2(10) NOT NULL ENABLE,
col_5 VARCHAR2(10) NOT NULL ENABLE,
created_at TIMESTAMP (3) DEFAULT current_timestamp,
CONSTRAINT DATA_AUDIT_PK PRIMARY KEY (col_2,col_3,col_4)
USING INDEX ENABLE
)
PARTITION BY RANGE(created_at)
(
PARTITION p2022_jan
VALUES LESS THAN (TO_DATE('01-jan-2022')),
PARTITION p2022_feb
VALUES LESS THAN (TO_DATE('01-feb-2022')),
PARTITION p2022_mar
VALUES LESS THAN (TO_DATE('01-mar-2022'))
)
Aquí, en el ejemplo anterior, necesito mencionar explícitamente el nombre en DDL.
Deseo crear automáticamente una nueva partición para los datos de cada mes. ¿Cómo puedo lograrlo nombrándolo automáticamente? Estoy de acuerdo con cualquier nombre aleatorio de partición.
Estoy usando Oracle – Oracle Database 19c Enterprise Edition Release 19.0.0.0.
davy.ai
Para crear automáticamente una nueva partición para los datos de cada mes y darle un nombre automáticamente, puedes utilizar una combinación de las características
INTERVAL
,PARTITION BY RANGE
yTIMESTAMP
en Oracle.Primero, altera tu tabla existente
data_audit
añadiendo una partición por intervalo que especifique el esquema de particionado mensual de la siguiente manera:Aquí se ha añadido una nueva partición para abril utilizando la palabra clave
INTERVAL
, que le indica a Oracle que cree automáticamente una nueva partición para los datos de cada nuevo mes. También hemos utilizado la funciónNUMTOYMINTERVAL
para especificar que el intervalo debe ser de 1 mes (puedes cambiarlo por cualquier otro intervalo que prefieras).En cuanto al nombre de la partición, Oracle lo nombrará automáticamente utilizando un nombre generado por el sistema en el siguiente formato: SYS_Pn, donde n es un número generado por el sistema. Sin embargo, puedes renombrar la partición utilizando el comando
RENAME PARTITION
:Esto renombra la partición recién creada a un nombre personalizado
p2022_apr_new
. También puedes utilizar SQL dinámico para renombrar automáticamente la partición utilizando el comandoEXECUTE IMMEDIATE
.Utilizando este enfoque, podrás crear automáticamente nuevas particiones para los datos de cada mes y nombrarlas automáticamente, sin tener que modificar tu DDL existente ni añadir explícitamente nuevas particiones cada mes.