oracle根據已有表及資料建立表分割槽並匯入資料

2021-09-01 15:12:54 字數 1642 閱讀 3503

假設情景:

現有system.test表,資料量過千萬,處於ts_test表空間中。

表中有列a,將a=6與a小於6的資料進行分割槽

確保不會有外部程式修改需要建表分割槽的表

1. 對需要重建表分割槽的表進行備份,匯出dmp,防止資料丟失

exp 使用者名稱/密碼@tns名 file=c:/test.dmp log=c:/test.log full=n rows=y buffer=10240000 tables=system.test

2. 建立臨時表,用來回導資料

create table system.test_bak

tablespace ts_test

asselect * from system.test;

3. 校驗資料行數

select count('x') c1 from system.test;

select count('x') c2 from system.test_bak;

如果行數不一致需查詢原因

4. 重建表

truncate table system.test;

drop table system.test;

create table system.test

tablespace ts_test

partition by range(a)

(partition p1 values less than ('6')

tablespace ts_test

,partition p2 values less than ('7')

tablespace ts_test,

partition p3 values less than (maxvalue)

tablespace ts_test)as

select

from system.test_bak;

第4步執行完之後,表裡的資料就分散到了p1和p2分割槽中

5. 重建索引,將原有表中的索引再建到system.test表中。

6. 檢查分割槽

select decode(a,'1','1','2','1','3','1','4','1','5','1',a),

count('x') n

from system.test

group by decode(a,'1','1','2','1','3','1','4','1','5','1',a)

order by decode(a,'1','1','2','1','3','1','4','1','5','1',a);

select count('x') n1 from system.test partition (p1);

select count('x') n2 from system.test partition (p2);

ORACLE將已有表分割槽

以table name內容建立分割槽表table name1並將資料寫入 create table table name1 partition by range createdate partition table name p1 values less than to date 2018 1 1 ...

Django 根據已有表生成ORM模型

在實際開發中,有些時候可能資料庫已經存在了。如果我們用django來開發乙個 讀職的是之前已經存在的資料庫中的資料。那麼該如何將模型與資料庫中的表對映呢?根據舊的資料庫生成對應的orm模型,需要以下幾個步驟 1 django 給我們提供了乙個inspectdb的命令,可以非常方便的將已經存在的表,自...

oracle給已有表新增主鍵

1,建立序列名 create sequence customer id seq increment by 1 每次加幾個 start with 1 從1開始計數 nomaxvalue 不設定最大值 nocycle 一直累加,不迴圈 cache 10 快取一旦定義了customer id seq序列,...