一些 ALTER FRAGMENT 操作可以更改分片表中现有的区间分片位置的顺序。在这些情况下,数据库服务器会自动修改受影响的区间分片的系统定义的名称。
对于由区间分片方案分区的表,添加、删除、附加或拆离分片或修改表的转换值的 ALTER FRAGMENT 操作可以更改现有的间隔分片的 sysfragments.evalpos 值,或者可以将间隔分片更改为范围分片。为了避免创建具有与 ALTER FRAGMENT 语句在分片列表中重新定位的间隔分片相同的系统生成的名称的新的间隔分片,数据库服务会自动使用与标识符名称不匹配的新标识符替换初始系统定义的名称。
在重命名分片期间,当使用新的 partition 名称更改 sysfragments 系统目录表时将会在此分片上放置一个互斥锁, 并且对于初始位置在分片列表中的分片的新的 evalpos 值将会在 ALTER FRAGMENT 操作期间变更。
在创建新的区间分片时,要必须声明非唯一的分片名称,数据库服务器只能重命名在 ALTER FRAGMENT 操作中系统生成的重定位的区间分片的标识符。用户定义的重定位分片的标识符不会自动重命名。
如果您希望在 ALTER FRAGMENT ONLINE ATTACH 语句执行期间或对使用区间分片表执行其它 ALTER FRAGMENT 操作时避免现有的分片的重命名,则您可以首先使用 ALTER FRAGMENT MODIFY 语句用用户定义的名称重命名这些区间分片,其它系统生成的名称可以由 ALTER FRAGMENT 操作更改。用户定义的分片名称不能以字符串 sys_ 开头。