The CREATE READWRITE_SPLITTING RULE syntax is used to create a read/write splitting rule.
CreateReadwriteSplittingRule ::=
  'CREATE' 'READWRITE_SPLITTING' 'RULE' ifNotExists? readwriteSplittingDefinition (',' readwriteSplittingDefinition)*
ifNotExists ::=
  'IF' 'NOT' 'EXISTS'
readwriteSplittingDefinition ::=
  ruleName '(' dataSourceDefinition (',' transactionalReadQueryStrategyDefinition)? (',' loadBalancerDefinition)? ')'
dataSourceDefinition ::=
    'WRITE_STORAGE_UNIT' '=' writeStorageUnitName ',' 'READ_STORAGE_UNITS' '(' storageUnitName (',' storageUnitName)* ')' 
transactionalReadQueryStrategyDefinition ::=
    'TRANSACTIONAL_READ_QUERY_STRATEGY' '=' transactionalReadQueryStrategyType
loadBalancerDefinition ::=
    'TYPE' '(' 'NAME' '=' algorithmType (',' propertiesDefinition)? ')'
ruleName ::=
  identifier
writeStorageUnitName ::=
  identifier
storageUnitName ::=
  identifier
transactionalReadQueryStrategyType ::=
  string
algorithmType ::=
  string
propertiesDefinition ::=
  'PROPERTIES' '(' key '=' value (',' key '=' value)* ')'
key ::=
  string
value ::=
  literal
transactionalReadQueryStrategyType specifies the routing strategy for read query within a transaction, please refer to YAML configuration;algorithmType specifies the load balancing algorithm type, please refer to Load Balance Algorithm;ruleName will not be created;ifNotExists clause used to avoid the Duplicate readwrite_splitting rule error.CREATE READWRITE_SPLITTING RULE ms_group_0 (
    WRITE_STORAGE_UNIT=write_ds,
    READ_STORAGE_UNITS(read_ds_0,read_ds_1),
    TYPE(NAME="random")
);
ifNotExists clauseCREATE READWRITE_SPLITTING RULE IF NOT EXISTS ms_group_0 (
    WRITE_STORAGE_UNIT=write_ds,
    READ_STORAGE_UNITS(read_ds_0,read_ds_1),
    TYPE(NAME="random")
);
CREATE, READWRITE_SPLITTING, RULE, WRITE_STORAGE_UNIT, READ_STORAGE_UNITS
, TYPE, NAME, PROPERTIES, TRUE, FALSE
