CREATE PLACEMENT POLICY
CREATE PLACEMENT POLICY
is used to create a named placement policy that can later be assigned to tables, partitions, or database schemas.
Note
This feature is not available on TiDB Serverless clusters.
Synopsis
CreatePolicyStmt
PolicyName
PlacementOptionList
PlacementOption
CommonPlacementOption
SugarPlacementOption
AdvancedPlacementOption
CreatePolicyStmt ::=
"CREATE" "PLACEMENT" "POLICY" IfNotExists PolicyName PlacementOptionList
PolicyName ::=
Identifier
PlacementOptionList ::=
PlacementOption
| PlacementOptionList PlacementOption
| PlacementOptionList ',' PlacementOption
PlacementOption ::=
CommonPlacementOption
| SugarPlacementOption
| AdvancedPlacementOption
CommonPlacementOption ::=
"FOLLOWERS" EqOpt LengthNum
SugarPlacementOption ::=
"PRIMARY_REGION" EqOpt stringLit
| "REGIONS" EqOpt stringLit
| "SCHEDULE" EqOpt stringLit
AdvancedPlacementOption ::=
"LEARNERS" EqOpt LengthNum
| "CONSTRAINTS" EqOpt stringLit
| "LEADER_CONSTRAINTS" EqOpt stringLit
| "FOLLOWER_CONSTRAINTS" EqOpt stringLit
| "LEARNER_CONSTRAINTS" EqOpt stringLit
| "SURVIVAL_PREFERENCES" EqOpt stringLit
Examples
Note
To know which regions are available in your cluster, see SHOW PLACEMENT LABELS.
If you do not see any available regions, your TiKV installation might not have labels set correctly.
CREATE PLACEMENT POLICY p1 PRIMARY_REGION="us-east-1" REGIONS="us-east-1,us-west-1" FOLLOWERS=4;
CREATE TABLE t1 (a INT) PLACEMENT POLICY=p1;
SHOW CREATE PLACEMENT POLICY p1;
Query OK, 0 rows affected (0.08 sec)
Query OK, 0 rows affected (0.10 sec)
+--------+---------------------------------------------------------------------------------------------------+
| Policy | Create Policy |
+--------+---------------------------------------------------------------------------------------------------+
| p1 | CREATE PLACEMENT POLICY `p1` PRIMARY_REGION="us-east-1" REGIONS="us-east-1,us-west-1" FOLLOWERS=4 |
+--------+---------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)
MySQL compatibility
This statement is a TiDB extension to MySQL syntax.