ALTER SHARDING KEY GENERATE STRATEGY 语法用于修改当前所选逻辑库的分片主键生成策略。
AlterShardingKeyGenerateStrategy ::=
'ALTER' 'SHARDING' 'KEY' 'GENERATE' 'STRATEGY' keyGenerateStrategyName '(' keyGenerateStrategyDefinition ')'
keyGenerateStrategyDefinition ::=
columnKeyGenerateStrategyDefinition
| sequenceKeyGenerateStrategyDefinition
columnKeyGenerateStrategyDefinition ::=
'TABLE' '=' tableName ',' 'COLUMN' '=' columnName ',' keyGenerateAlgorithmDefinition
sequenceKeyGenerateStrategyDefinition ::=
'SEQUENCE' '=' sequenceName ',' keyGenerateAlgorithmDefinition
keyGenerateAlgorithmDefinition ::=
algorithmDefinition
| 'GENERATOR' '=' keyGeneratorName
algorithmDefinition ::=
'TYPE' '(' 'NAME' '=' algorithmType (',' propertiesDefinition)? ')'
propertiesDefinition ::=
'PROPERTIES' '(' key '=' value (',' key '=' value)* ')'
key ::=
string
value ::=
literal
keyGenerateStrategyName ::=
identifier
tableName ::=
identifier
columnName ::=
identifier
sequenceName ::=
identifier | string
keyGeneratorName ::=
identifier
algorithmType ::=
string
CREATE SHARDING KEY GENERATE STRATEGY 保持一致;ALTER 会使用新的定义替换已有分片主键生成策略;GENERATOR=... 用于改为引用已有的分片主键生成器;TYPE(NAME=..., PROPERTIES(...)) 用于直接改为新的内联算法定义;algorithmType 为主键生成算法类型,详细信息请参考分布式主键。ALTER SHARDING KEY GENERATE STRATEGY order_id_strategy (
TABLE=t_order,
COLUMN=order_id,
GENERATOR=snowflake_generator
);
ALTER SHARDING KEY GENERATE STRATEGY order_sequence_strategy (
SEQUENCE="order_seq",
TYPE(NAME="uuid")
);
ALTER、SHARDING、KEY、GENERATE、STRATEGY、TABLE、COLUMN、SEQUENCE、TYPE、NAME、PROPERTIES、GENERATOR
