可以使用 ALTER FRAGMENT 语句更改现有表或索引的分布策略或存储位置。该语句是 SQL ANSI/ISO 标准的扩展。
元素 | 描述 | 限制 | 语法 |
---|---|---|---|
surviving _index | 用于修改分布或存储的索引 | 当该语句执行时必须存在 | 标识符 |
surviving _table | 用于修改分布或存储的表 | 必须存在。请参阅 对 ALTER FRAGMENT 语句的限制 | 标识符 |
ALTER FRAGMENT 语句仅适用于位于当前站点的表分片或索引分片。不会存储或更新任何远程信息。
ALTER FRAGMENT 语句的子句支持以下任务。
使用 CREATE TABLE 语句或 ALTER FRAGMENT 语句的 INIT 子句来创建分片表。
在 onspaces 实用程序成功重命名 dbspace 后,只有新的名称能够引用重命名后的 dbspace。然而,表或索引的现有分片存储策略是由数据库服务器自动更新的,以使用新的 dbspace 名称替换旧的名称。您不需要采取任何额外的操作更新使用旧的 dbspace 名称定义的分布策略或存储位置,但是如果您要在一个 ALTER FRAGMENT 或 ALTER TABLE 语句中引用该 dbspace ,您必须使用新的名称。
如果您忽略可选 ONLINE 关键字,ALTER FRAGMENT 操作需要在参与该操作的所有表上都放置独占存取和独占锁。如果您启用 FORCE_DDL_EXEC 会话环境选项,那么您可以强制已打开的参与 ALTER FRAGMENT ON TABLE 操作的表或任一已放置锁的表的其他事务退出。如果服务器无法获得该表的独占访问和独占锁,那么服务器将会回滚已打开或表中已有锁的事务,直到满足 FORCE_DDL_EXE 选项指定的值。(有关更多信息,请参阅 FORCE_DDL_EXEC 环境选项 。)