ALTER SHARDING TABLE RULE

    • tableDefinition is defined for standard sharding table rule; autoTableDefinition is defined for auto sharding table rule. For standard sharding rules and auto sharding rule, refer to ;
    • use standard sharding table rule:
      • DATANODES can only use resources that have been added to the current database, and can only use INLINE expressions to specify required resources;
      • DATABASE_STRATEGY, TABLE_STRATEGY are the database sharding strategy and the table sharding strategy, which are optional, and the default strategy is used when not configured;
      • The attribute TYPE in strategyDefinition is used to specify the type of Sharding Algorithm, currently only supports STANDARD, COMPLEX. Using COMPLEX requires specifying multiple sharding columns with SHARDING_COLUMNS.
    • use auto sharding table rule:
      • RESOURCES can only use resources that have been added to the current database, and the required resources can be specified by enumeration or INLINE expression;
      • Only auto sharding algorithm can be used, please refer to .
    • algorithmType is the sharding algorithm type, please refer to Sharding Algorithm;
    • The auto-generated algorithm naming rule is tableName _ strategyType _ shardingAlgorithmType;
    • KEY_GENERATE_STRATEGY is used to specify the primary key generation strategy, which is optional. For the primary key generation strategy, please refer to .
    • AUDIT_STRATEGY is used to specify the sharding audit strategy, which is optional. For the sharding audit generation strategy, please refer to Sharding Audit.

    1.Standard sharding table rule

    • Alter standard sharding table rule to the specified sharding algorithms being altered
    1. -- alter sharding algorithms
    2. ALTER SHARDING ALGORITHM database_inline (
    3. TYPE(NAME="inline", PROPERTIES("algorithm-expression"="t_order_${user_id % 4}"))
    4. ), table_inline (
    5. TYPE(NAME="inline", PROPERTIES("algorithm-expression"="t_order_${order_id % 4}"))
    6. -- alter a sharding rule to the specified sharding algorithms being altered
    7. ALTER SHARDING TABLE RULE t_order (
    8. DATANODES("resource_${0..3}.t_order_item${0..3}"),
    9. DATABASE_STRATEGY(TYPE="standard", SHARDING_COLUMN=user_id, SHARDING_ALGORITHM=database_inline),
    10. TABLE_STRATEGY(TYPE="standard", SHARDING_COLUMN=order_id, SHARDING_ALGORITHM=table_inline)
    11. );
    • Use the altered default sharding database strategy, alter standard sharding table rule to the specified sharding algorithm being altered
    • Use both the altered default sharding and the altered default sharding strategy, alter standard sharding table rule
    1. -- alter sharding algorithms
    2. ALTER SHARDING ALGORITHM database_inline (
    3. TYPE(NAME="inline", PROPERTIES("algorithm-expression"="t_order_${user_id % 4}"))
    4. ), table_inline (
    5. TYPE(NAME="inline", PROPERTIES("algorithm-expression"="t_order_${order_id % 4}"))
    6. -- alter a default sharding database strategy
    7. ALTER DEFAULT SHARDING DATABASE STRATEGY (
    8. TYPE="standard", SHARDING_COLUMN=order_id, SHARDING_ALGORITHM=database_inline
    9. );
    10. -- alter a default sharding table strategy
    11. ALTER DEFAULT SHARDING TABLE STRATEGY (
    12. TYPE="standard", SHARDING_COLUMN=order_id, SHARDING_ALGORITHM=table_inline
    13. );
    14. -- alter a sharding table rule
    15. DATANODES("resource_${0..3}.t_order_item${0..3}")
    16. );
    • Alter standard sharding table rule and create sharding algorithms at the same time

    2.Auto sharding table rule

    • alter auto sharding table rule
    1. ALTER SHARDING TABLE RULE t_order (
    2. RESOURCES(ds_0, ds_1),
    3. SHARDING_COLUMN=order_id, TYPE(NAME="MOD", PROPERTIES("sharding-count"="4"))
    4. );

    ALTER, SHARDING, TABLE, RULE, DATANODES, DATABASE_STRATEGY, TABLE_STRATEGY, KEY_GENERATE_STRATEGY, RESOURCES, SHARDING_COLUMN, TYPE, SHARDING_COLUMN, KEY_GENERATOR, SHARDING_ALGORITHM, COLUMN, NAME, PROPERTIES, AUDIT_STRATEGY, AUDITORS,