日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

ALTER PARTITION TABLE

更新時(shí)間:

ALTER PARTITION TABLE語(yǔ)句用于修改分區(qū)表。本文為您介紹ALTER PARTITION TABLE的用法。

命令格式

Hologres支持以下3種修改分區(qū)表的操作。

ALTER TABLE [IF EXISTS] table_name RENAME to new_table_name;
ALTER TABLE [IF EXISTS] table_name ATTACH PARTITION new_partition_name FOR VALUES in (<string_literal>);
ALTER TABLE [IF EXISTS] table_name DETACH PARTITION paritition_name;

參數(shù)說(shuō)明

修改分區(qū)表命令的參數(shù)說(shuō)明如下。

參數(shù)

描述

RENAME

重命名分區(qū)表。

ATTACH PARTITION new_partition_name FOR VALUES in (<string_literal>)

用于將當(dāng)前表綁定為目標(biāo)表的分區(qū)。說(shuō)明如下:

  • 綁定分區(qū)的規(guī)范必須與目標(biāo)表的分區(qū)策略和分區(qū)鍵相對(duì)應(yīng)。

  • 需要綁定的表與目標(biāo)表的列數(shù)量必須相同,并且列類型必須匹配。

  • 需要綁定的表必須具有目標(biāo)表的所有NOT NULL約束。

    如果您添加了一個(gè)不接受NULL值的列表分區(qū),除非它是一個(gè)表達(dá)式,否則您需要添加NOT NULL約束至分區(qū)鍵列。

DETACH PARTITION partition_name

分離目標(biāo)表的指定分區(qū)。

被分離的分區(qū)作為獨(dú)立表繼續(xù)存在,但不再與目標(biāo)表相關(guān)聯(lián)。

使用限制

  • 分區(qū)子表在綁定父表時(shí),其約束關(guān)系如下表所示。其中:

    • 與父表保持一致:即對(duì)應(yīng)的屬性分區(qū)子表必須和父表保持一致,若不一致,在分區(qū)子表綁定(ATTACH)父表時(shí)會(huì)報(bào)錯(cuò),需要重新創(chuàng)建分區(qū)子表。

    • 不要求與父表一致:即對(duì)應(yīng)的屬性分區(qū)子表可以與父表不一致,如果子表沒(méi)有顯式指定屬性,則會(huì)繼承父表的屬性,若是子表顯式指定屬性,則會(huì)保留子表的屬性。

    • 索引列必須包含父表的索引列:即分區(qū)子表的索引列必須包含父表的索引列,還能顯式再指定其他列。

    分類

    表屬性

    描述

    create table partition of 時(shí)是否繼承父表屬性

    ATTACH時(shí)與父表的約束關(guān)系

    DETACH時(shí)是否繼承父表屬性

    表屬性

    orientation

    表存儲(chǔ)格式。

    繼承

    與父表保持一致。

    繼承

    table_group

    Table Group屬性包含Shard Count。

    繼承

    與父表保持一致。

    繼承

    time_to_live_in_seconds

    表數(shù)據(jù)生命周期。

    繼承

    不要求與父表一致。

    • 子表屬性未賦值,繼承父表屬性。

    • 子表屬性已賦值,保留子表屬性。

    繼承

    索引

    primary key

    主鍵。

    繼承

    與父表保持一致。

    繼承

    distribution key

    分布鍵。

    繼承

    與父表保持一致。

    繼承

    clustering_key(包括列和排序)

    聚簇索引。

    繼承

    與父表保持一致。

    繼承

    event_time_column

    分段鍵。

    繼承

    與父表保持一致。

    繼承

    bitmap_columns

    比特編碼。

    繼承

    索引列必須包含父表的索引列。

    繼承

    dictionary_encoding_columns

    字段編碼。

    繼承

    索引列必須包含父表的索引列。

    繼承

    binlog_level

    是否開(kāi)啟Binlog。

    繼承

    與父表保持一致。

    繼承

    proxima_vectors

    向量檢索索引。

    繼承

    索引列必須包含父表的索引列。

    繼承

    列約束

    nullable

    非空約束。

    繼承

    與父表保持一致。

    繼承

    default value

    默認(rèn)值。

    繼承

    與父表保持一致。

    繼承

  • Attach的表必須與目標(biāo)表具有相同的列,而不能多或者少列。

  • Attach時(shí)列的類型必須匹配。

使用示例

修改分區(qū)表的示例語(yǔ)句如下。

--修改分區(qū)表的名稱
alter table holo_test rename to my_holo_test;

--添加my_table為holo_table的分區(qū)表
alter table holo_table attach partition my_table for values in ('2015');

--將holo_test從all_test分區(qū)表中解除綁定,分離為獨(dú)立表
alter table all_test detach partition holo_test; 
            

您也可以參見(jiàn)如下完整示例進(jìn)行分區(qū)表替換。

-- 創(chuàng)建新的分區(qū)表
begin;
drop table if exists "table_20210101_new";
CREATE TABLE "table_20210101_new" (
  "colA" integer NOT NULL,
  "colB" text NOT NULL,
  "colC" numeric(38,10) NOT NULL,
  "ds" text NOT NULL,
  "process_time" timestamptz NOT NULL DEFAULT now()
);
call set_table_property('table_20210101_new', 'orientation','column');
call set_table_property('table_20210101_new', 'distribution_key','"colA"');
call set_table_property('table_20210101_new', 'event_time_column','process_time');
commit;

---導(dǎo)入數(shù)據(jù)
insert into "table_20210101_new" select * from ...;

---替換子表
begin;
--解除綁定子分區(qū)為獨(dú)立的表
ALTER TABLE table_parent DETACH PARTITION table_20210101;
--重命名解綁定后獨(dú)立的表
ALTER TABLE table_20210101 RENAME to table_20210101_backup;
--把臨時(shí)表更名為分區(qū)表名
ALTER TABLE table_20210101_new RENAME to table_20210101;
--綁定新的分區(qū)表
ALTER TABLE table_parent ATTACH PARTITION table_20210101 FOR VALUES in ("20210101");
commit;