mysql 1556_mysql8 参考手册-分区管理

使用SQL语句修改分区表的方法有多种。可以使用ALTER TABLE语句的分区扩展来添加,删除,重新定义,合并或拆分现有分区 。还有一些方法可以获取有关分区表和分区的信息。

要更改表的分区方案,只需要使用ALTER TABLE带有partition_options选项的 语句,该 选项的语法与CREATE TABLE创建分区表所用的语法相同;此选项(也)始终以关键字开头PARTITION BY。假设以下 CREATE TABLE语句用于创建按范围分区的表:

CREATE TABLE trb3 (id INT, name VARCHAR(50), purchased DATE)

PARTITION BY RANGE( YEAR(purchased) ) (

PARTITION p0 VALUES LESS THAN (1990),

PARTITION p1 VALUES LESS THAN (1995),

PARTITION p2 VALUES LESS THAN (2000),

PARTITION p3 VALUES LESS THAN (2005)

);

要对该表进行重新分区,以便使用键将id列值作为键的基础,按键将其分为两个分区,可以使用以下语句:

ALTER TABLE trb3 PARTITION BY KEY(id) PARTITIONS 2;

这与删除表并使用创建表的效果相同,对表的结构具有相同的作用CREATE TABLE trb3 PARTITION BY KEY(id) PARTITIONS 2;。

ALTER TABLE ... ENGINE = ...仅更改表使用的存储引擎,并保持表的分区方案不变。仅当目标存储引擎提供分区支持时,该语句才会成功。您可以 ALTER TABLE ... REMOVE PARTITIONING用来删除表的分区;请参见第13.1.9节“ ALTER TABLE语句”。

重要

只有一个单一的PARTITION BY,ADD PARTITION,DROP PARTITION, REORGANIZE PARTITION,或COALESCE PARTITION子句可以在给定的使用 ALTER TABLE说明。例如,如果您希望删除一个分区并重组表的其余分区,则必须在两个单独的 ALTER TABLE语句中进行操作(一个使用DROP PARTITION,然后另一个使用 REORGANIZE PARTITION)。

您可以使用删除一个或多个选定分区中的所有行 ALTER TABLE ... TRUNCATE PARTITION。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值