The CREATE DEFAULT SHARDING STRATEGY
syntax is used to create a default sharding strategy
CreateDefaultShardingStrategy ::=
'CREATE' 'DEFAULT' 'SHARDING' ('DATABASE' | 'TABLE') 'STRATEGY' '(' shardingStrategy ')'
shardingStrategy ::=
'TYPE' '=' strategyType ',' ( 'SHARDING_COLUMN' '=' columnName | 'SHARDING_COLUMNS' '=' columnNames ) ',' ( 'SHARDING_ALGORITHM' '=' algorithmName | algorithmDefinition )
algorithmDefinition ::=
'TYPE' '(' 'NAME' '=' algorithmType ( ',' 'PROPERTIES' '(' propertyDefinition ')' )?')'
columnNames ::=
columnName (',' columnName)+
columnName ::=
identifier
algorithmName ::=
identifier
algorithmType ::=
identifier
SHARDING_COLUMNS
algorithmType
is the sharding algorithm type. For detailed sharding algorithm type information, please refer to Sharding Algorithm-- create a sharding algorithm
CREATE SHARDING ALGORITHM database_inline (
TYPE(NAME=inline, PROPERTIES("algorithm-expression"="t_order_${order_id % 2}"))
);
-- create a default sharding database strategy
CREATE DEFAULT SHARDING DATABASE STRATEGY (
TYPE=standard, SHARDING_COLUMN=user_id, SHARDING_ALGORITHM=database_inline
);
-- create a default sharding table strategy
CREATE DEFAULT SHARDING TABLE STRATEGY (
TYPE=standard, SHARDING_COLUMN=user_id, SHARDING_ALGORITHM(TYPE(NAME=inline, PROPERTIES("algorithm-expression"="t_order_${user_id % 2}")))
);