<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                [TOC] # 一級分區表 ## 創建 Range 分區表 Range 分區簡單的語法格式如下: ~~~ CREATE TABLE table_name ( column_name1 column_type [, column_nameN column_type] ) PARTITION BY RANGE ( expr(column_name1) | column_name1) ( PARTITION p0 VALUES LESS THAN ( expr ) [, PARTITION pN VALUES LESS THAN (expr ) ] [, PARTITION pX VALUES LESS THAN (MAXVALUE) ] ); ~~~ 在創建 Range 分區時,需要遵循以下規則: * `PARTITION BY RANGE ( expr )`里的`expr`表達式的結果必須為整型。 * 每個分區都有一個`VALUES LESS THAN`子句,它為分區指定一個非包含的上限值。分區鍵的任何值等于或大于這個值時將被映射到下一個分區中。 * 除第一個分區外,所有分區都隱含一個下限值,即上一個分區的上限值。 * 僅允許最后一個分區的上限定義為`MAXVALUE`,這個值沒有具體的數值,并且比其他所有分區的上限都要大,也包含空值。 示例: * MySQL 模式下,創建一個 Range 分區表。 ~~~ obclient>CREATE TABLE t_log_part_by_range ( log_id bigint NOT NULL , log_value varchar(50) , log_date timestamp NOT NULL ) PARTITION BY RANGE(UNIX_TIMESTAMP(log_date)) ( PARTITION M202001 VALUES LESS THAN(UNIX_TIMESTAMP('2020/02/01')) , PARTITION M202002 VALUES LESS THAN(UNIX_TIMESTAMP('2020/03/01')) , PARTITION M202003 VALUES LESS THAN(UNIX_TIMESTAMP('2020/04/01')) , PARTITION M202004 VALUES LESS THAN(UNIX_TIMESTAMP('2020/05/01')) , PARTITION M202005 VALUES LESS THAN(UNIX_TIMESTAMP('2020/06/01')) , PARTITION M202006 VALUES LESS THAN(UNIX_TIMESTAMP('2020/07/01')) , PARTITION M202007 VALUES LESS THAN(UNIX_TIMESTAMP('2020/08/01')) , PARTITION M202008 VALUES LESS THAN(UNIX_TIMESTAMP('2020/09/01')) , PARTITION M202009 VALUES LESS THAN(UNIX_TIMESTAMP('2020/10/01')) , PARTITION M202010 VALUES LESS THAN(UNIX_TIMESTAMP('2020/11/01')) , PARTITION M202011 VALUES LESS THAN(UNIX_TIMESTAMP('2020/12/01')) , PARTITION M202012 VALUES LESS THAN(UNIX_TIMESTAMP('2021/01/01')) ); ~~~ Range 分區可以新增和刪除分區。如果最后一個 Range 分區指定了`MAXVALUE`,則不能新增分區。 MySQL 模式下,Range 分區要求表分區鍵表達式的結果必須為整型,如果要按時間類型列做 Range 分區,則必須使用 Timestamp 類型,并且使用函數 UNIX\_TIMESTAMP 將時間類型轉換為數值。這個需求也可以使用 Range Columns 分區實現,并且不需要表拆分鍵表達式的結果為整型。 ## 創建 Range Columns 分區表 在 OceanBase 數據庫中,僅 MySQL 模式支持 Range Columns 分區。 Range Columns 分區的簡單語法格式如下: ~~~ CREATE TABLE table_name ( column_name1 column_type [, column_nameN column_type] ) PARTITION BY RANGE ( column_name1 [, column_name2] ) ( PARTITION p0 VALUES LESS THAN ( expr ) [, PARTITION pN VALUES LESS THAN (expr ) ] [, PARTITION pX VALUES LESS THAN (maxvalue) ] ); ~~~ 示例:創建一個 Range Columns 分區。 ~~~ obclient>CREATE TABLE t_log_part_by_range_columns ( log_id bigint NOT NULL , log_value varchar(50) , log_date date NOT NULL ) PARTITION BY RANGE COLUMNS(log_date) ( PARTITION M202001 VALUES LESS THAN('2020/02/01') , PARTITION M202002 VALUES LESS THAN('2020/03/01') , PARTITION M202003 VALUES LESS THAN('2020/04/01') , PARTITION M202004 VALUES LESS THAN('2020/05/01') , PARTITION M202005 VALUES LESS THAN('2020/06/01') , PARTITION M202006 VALUES LESS THAN('2020/07/01') , PARTITION M202007 VALUES LESS THAN('2020/08/01') , PARTITION M202008 VALUES LESS THAN('2020/09/01') , PARTITION M202009 VALUES LESS THAN('2020/10/01') , PARTITION M202010 VALUES LESS THAN('2020/11/01') , PARTITION M202011 VALUES LESS THAN('2020/12/01') , PARTITION M202012 VALUES LESS THAN('2021/01/01') , PARTITION MMAX VALUES LESS THAN MAXVALUE ); ~~~ ## 創建 List 分區表 List 分區的簡單語法格式如下: ~~~ CREATE TABLE table_name ( column_name1 column_type [, column_nameN column_type] ) PARTITION BY LIST ( expr(column_name1) | column_name1) ( PARTITION p0 VALUES IN ( v01 [, v0N] ) [, PARTITION pN VALUES IN ( vN1 [, vNN] ) ] [, PARTITION pX VALUES IN (default) ] ); ~~~ 當使用 List 分區時,需要遵循以下規則: * 分區表達式的結果必須是整型。 * 分區表達式只能引用一列,不能有多列(即列向量)。 示例: * MySQL 模式下創建一個 List 分區表。 ~~~ obclient>CREATE TABLE t_part_by_list ( c1 BIGINT PRIMARY Key , c2 VARCHAR(50) ) PARTITION BY list(c1) ( PARTITION p0 VALUES IN (1, 2, 3) , PARTITION p1 VALUES IN (5, 6) , PARTITION p2 VALUES IN (DEFAULT) ); ~~~ ## 創建 List Columns 分區表 在 OceanBase 數據庫中,僅 MySQL 模式支持 List Columns 分區。 List Columns 分區簡單的語法格式如下: ~~~ CREATE TABLE table_name ( column_name1 column_type [, column_nameN column_type] ) PARTITION BY LIST COLUMNS ( column_name1 [, column_nameN ] ) ( PARTITION p0 VALUES IN ( v01 [, v0N] ) [, PARTITION pN VALUES IN ( vN1 [, vNN] ) ] [, PARTITION pX VALUES IN (default) ] ); ~~~ 示例:創建一個 LIST Columns 分區表。 ~~~ obclient>CREATE TABLE t2 ( id varchar(64), type varchar(16), info varchar(512), gmt_create datetime(6), gmt_modified datetime(6), partition_id varchar(2) GENERATED ALWAYS AS (substr(`id`,19,20)) VIRTUAL, PRIMARY KEY (id) ) partition by list columns(partition_id) (partition p0 values in ('00','01'), partition p1 values in ('02','03'), partition p2 values in (default)); ~~~ ## 創建 Hash 分區表 示例:在 MySQL 模式下,創建一個 Hash 分區表。 ~~~ obclient>CREATE TABLE ware( w_id int , w_ytd number(12,2) , w_tax number(4,4) , w_name varchar(10) , w_street_1 varchar(20) , w_street_2 varchar(20) , w_city varchar(20) , w_state char(2) , w_zip char(9) , primary key(w_id) ) PARTITION by hash(w_id) partitions 60; ~~~ ## 創建 Key 分區表 在 OceanBase 數據庫中,僅 MySQL 模式支持 Key 分區。 示例:創建表`t_log_part_by_Key`,將`id`、`gmt_create`鍵作為分區鍵,按 Key 分區劃分為 3 個分區。 ~~~ obclient>CREATE TABLE t_log_part_by_key( id INT, gmt_create DATETIME, info VARCHAR(20)) PARTITION BY KEY(id, gmt_create) PARTITIONS 3; ~~~
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看