1、创建新表(增加分区,自动按时间一月一分)
这是原有表
CREATE TABLE ZXB_TEST (
id NUMBER (10) NOT NULL,
name VARCHAR2 (255 BYTE) NOT NULL,
age NUMBER (10) NOT NULL,
gender VARCHAR2 (255 BYTE) NOT NULL,
phone_number VARCHAR2 (11 BYTE) NOT NULL,
create_time DATE DEFAULT SYSDATE NOT NULL
);
现在为上表增加分区,自动按时间一月一分
CREATE TABLE ZXB_TEST1 (
id NUMBER (10) NOT NULL,
name VARCHAR2 (255 BYTE) NOT NULL,
age NUMBER (10) NOT NULL,
gender VARCHAR2 (255 BYTE) NOT NULL,
phone_number VARCHAR2 (11 BYTE) NOT NULL,
create_time DATE DEFAULT SYSDATE NOT NULL
)
PARTITION BY RANGE (create_time) INTERVAL (NUMTOYMINTERVAL(1, 'MONTH'))
(
PARTITION m0001--分区名,之后每个月系统会根据这个自动创建
VALUES
LESS THAN (
TO_DATE ('2019-08-07', 'yyyy-mm-dd')
) TABLESPACE dbtooltbs--dbtooltbs是表空间名称,可不加
) ;
2、把旧表的数据导入到新表里面
INSERT INTO ZXB_TEST1 SELECT * FROM ZXB_TEST;
3、查看表数据是否导入成功
--查询表中看是否有数据
SELECT * FROM TABLE ZXB_TEST;
SELECT * FROM TABLE ZXB_TEST1;
4、删除旧表
DROP TABLE TABLE ZXB_TEST;
5、把新表名改为旧表
ALTER TABLE TABLE ZXB_TEST1 rename to TABLE ZXB_TEST;
好了,到这里我们就愉快的把ZXB_TEST这张表添加了分区,并且原表数据不丢失。