ALTER PROJECTION
更改指定投影的 DDL。
语法
ALTER PROJECTION [[database.]schema.]projection
{ RENAME TO new‑name | ON PARTITION RANGE BETWEEN min-val AND max-val }
参数
-
架构
数据库和架构。默认架构为
public
。如果指定一个数据库,它必须是当前数据库。-
projection
- 要更改的投影,其中 projection 可以为以下之一:
-
投影基本名称:重命名共享此基本名称的所有投影。
-
投影名称:重命名指定投影及其基本名称。如果投影是分段的,则其伙伴实例不受此更改的影响。
有关投影名称约定,请参阅投影命名。
-
-
new‑name
- 新的投影名称。
ON PARTITION RANGE
-
注意
仅对使用分区范围创建的投影有效。指定将此投影的数据限制在分区键范围内,指定如下:
ON PARTITION RANGE BETWEEN min-range-value AND max-range-value
以下要求适用于 min‑range‑value 和 ≤ max‑range‑value:
-
Min‑range‑value 必须 ≤ max‑range‑value
-
它们必须解析为与表分区表达式兼容的数据类型。
-
它们可以是:
-
字符串字面量。例如,
2021-07-31
-
具有稳定或不可变函数的表达式,例如:
date_trunc('month', now()::timestamp - interval'1 month')
-
max-range-value 可以设置为 NULL,以指定分区范围没有上限。
如果新的键范围超出之前的范围,Vertica 将发出警告,指出投影已过期,必须刷新才能使用。
有关其他要求和使用详细信息,请参阅分区范围投影。
-
特权
非超级用户权限、对架构的 CREATE 和 USAGE 权限以及以下锚表权限之一:
-
表所有者
-
ALTER 权限
-
SELECT 权限(仅当定义了分区范围投影时)
示例
=> SELECT export_tables('','public.store_orders');
export_tables
---------------------------------------------
CREATE TABLE public.store_orders
(
order_no int,
order_date timestamp NOT NULL,
shipper varchar(20),
ship_date date NOT NULL
);
(1 row)
=> CREATE PROJECTION store_orders_p AS SELECT * from store_orders;
CREATE PROJECTION
=> ALTER PROJECTION store_orders_p RENAME to store_orders_new;
ALTER PROJECTION
另请参阅
CREATE PROJECTION