Oracle 已存在資料的大表 改 分割槽表

2021-10-09 02:46:44 字數 2145 閱讀 6582

建立表,插入測試資料 

-- create table

create table lxw_test

( cdate date,

t1 number,

t2 varchar2(2));

insert into lxw_test

(cdate, t1, t2)

values

(to_date('2020-07-01','yyyy-mm-dd'), 1, '01');

insert into lxw_test

(cdate, t1, t2)

values

(to_date('2020-07-02','yyyy-mm-dd'), 2, '02');

檢視資料

具體操作 

-- 根據原表結構建立分割槽表

create table lxw_test_2

( cdate date,

t1 number,

t2 varchar2(2)

) partition by range (cdate) ---分割槽的依據字段

interval (numtoyminterval(1,'month')) --自動增加分割槽的間隔

( partition p1 values less than (to_date('2020-08-01', 'yyyy-mm-dd'))

)tablespace tablespace_lxw

pctfree 10

initrans 1

maxtrans 255

storage

( initial 64k

next 1m

minextents 1

maxextents unlimited

);-- add comments to the table

comment on table lxw_test

is '測試表';

--交換分割槽

alter table lxw_test_2 exchange partition p1 with table lxw_test;

--分割槽重新命名

alter table lxw_test rename to lxw_test_temp;

alter table lxw_test_2 rename to lxw_test;

--所有索引重建

查詢資料看一下

看一下分割槽資訊

插入幾條資料

insert into lxw_test

(cdate, t1, t2)

values

(to_date('2020-08-01', 'yyyy-mm-dd'), 3, '03');

insert into lxw_test

(cdate, t1, t2)

values

(to_date('2020-09-02', 'yyyy-mm-dd'), 4, '04');

insert into lxw_test

(cdate, t1, t2)

values

(to_date('2020-10-01', 'yyyy-mm-dd'), 5, '05');

查詢資料

檢視分割槽資訊

為已存在資料的表加主鍵

altertable 名 addcolumn 列名 int notnull auto incrementprimarykeycomment 主鍵 first 上面語句表示給某個 新增乙個自動增長的主鍵字段,並且將該字段放在第一列。如果你想放到其他列後面,可以將上面sql語句中的first換成afte...

Docker安裝nacos,連線已存在資料庫

按照官方推薦方式安裝nacos單機版連線自己docker已存在的資料庫,發現nacos服務起來了,但無法訪問。test mysql 修改為外部的mysql 記得需要處於同乙個網路 restart always prefer host mode hostname mode standalone spr...

MySQL為已存在資料的表新增自增id欄位

已有的mysql資料表,希望增加乙個自增的字段,並設定新資料的初始值。原本是想新建乙個表,然後加上自增id欄位,再把舊表匯入,最後在把新錶替換成舊表,但是這樣非常麻煩。後來發現有個語句可以直接新增自增主鍵 alter table table name add column id int 11 not...