ALTER TABLE

最近更新时间:2025-09-09 18:25:01

我的收藏

功能描述

修改已存在的表的结构,例如修改绑定的分区亲和性策略等。

语法

alter_table_stmt:
ALTER TABLE table_name USING PARTITION POLICY partition_policy_name
| ALTER TABLE table_name DROP PARTITION POLICY_ [FORCE]

参数说明

参数
是否必选
说明
ALTER TABLE table_name USING PARTITION POLICY partition_policy_name
可选
修改表绑定的分区亲和性策略,其中table_namepartition_policy_name需要显式指定。
ALTER TABLE table_name DROP PARTITION POLICY_ [FORCE]
可选
解绑表绑定的分区亲和性策略。
table_name需显式指定。
FORCE选项:
若指定,则执行成功后,当前表不再绑定任何亲和性策略。
若不指定,则会尝试解绑当前表已绑定的显式亲和性策略,再将其绑定可能的隐式亲和性策略。

示例

修改与解绑亲和性策略的操作。
# 创建分区亲和性策略pp1
tdsql [demo]> create partition policy pp1 partition by hash(int) partitions 4;
Query OK, 0 rows affected (0.02 sec)

# 创建hash 4分区的表t
tdsql [demo]> create table t(id INT) partition by hash(id) partitions 4;
Query OK, 0 rows affected (0.90 sec)

# 将表t绑定到分区亲和性策略pp1
tdsql [demo]> alter table t using partition policy pp1;
Query OK, 0 rows affected (0.64 sec)

# 解绑表t的分区亲和性,完成后表t会被自动绑定到对应的隐式亲和性策略
tdsql [demo]> alter table t drop partition policy;
Query OK, 0 rows affected (0.66 sec)

# 彻底解绑表t的分区亲和性策略,完成后表t不绑定任何分区亲和性策略
MySQL [demo]> alter table t drop partition policy force;
Query OK, 0 rows affected (0.61 sec)