oracle中自動建立分表

2022-07-25 18:54:14 字數 1072 閱讀 5446

最近由於工作需要,研究了下oracle中分割槽表和自動建立分割槽表

主要用到的關鍵字:

partition(建立分割槽表必備)

interval   (自動建立分割槽表必備   好像只有oracle10g  和oracle11g  中有該關鍵字)

例子如下:

create table t1

(id         varchar2(50) not null,

name       varchar2(50),

date_time date

)partition by range(date_time)

interval(numtoyminterval(1,'month'))

(partition p0 values less than (to_date('2000-01-01', 'yyyy-mm-dd')));

該段**表示:

1.建立的表t1

2.建立了預設分割槽表p0,insert  資料時,date_time  小於 '2000-01-01' 的所有資料都儲存在 p0 分割槽表中

3.做到了自動建立分割槽表的功能,interval(numtoyminterval(1,'month'))   按月份自動分割槽

即如果 date_time  的年月找不到已有分割槽,則自動建立新的分割槽

根據分割槽表查詢語句類似:select * from t1 partition (p0);

採用自動建立分割槽優缺點

優點:可以根據實際情況,自動建立分割槽

缺點:建立的分割槽表名稱無法指定(目前我研究的範圍內,無法指定),系統自動預設生成類似sys_p41的分割槽表名

自動建立的分割槽表可以在oracle系統自帶的表中查詢到自己的分割槽表名稱

語句如下:select * from dba_tab_partitions where table_name='t1'

該語句可以查詢到t1下面的所有分割槽表資訊,

如果非要根據分割槽條件找到對應的分割槽表名稱,只能  通過 系統表 dba_tab_partitions 中的high_value  字段,

擷取相關字串匹配條件找出partition_name 

Oracle中建立自動標識列

在oracle中建立標識列,不同於sql server中的是,sqlserver中叫自動標識列entity,而oracle中叫序列 sequence 在oracle中建立序列 sequence 分為如下幾步 建立乙個測試表 create tabletb test useridnumber prima...

Oracle中建立自動標識列

1 建立測試表admin create table admin id varchar2 20 name varchar2 10 2 建立乙個序列 sequence 針對主鍵id create sequence innerid 建立乙個序列 minvalue 1 該序列的最小值是1 maxvalue ...

oracle按時間自動建立分割槽表

首先明確分割槽表和表分割槽的區別 表分割槽是一種思想,分割槽表示一種技術實現。當表的大小過g的時候可以考慮進行表分割槽,提高查詢效率,均衡io。oracle分割槽表是oracle資料庫提供的一種表分割槽的實現形式。表進行分割槽後,邏輯上仍然是一張表,原來的查詢sql同樣生效,同時可以採用使用分割槽查...