如何创建多个字段的分区

【 TiDB 使用环境】生产环境
【 TiDB 版本】v7.3

需求:我想创建 reg_province = ‘安徽省’,display=1,reg_province=北京市,display=1 等等所有省份的
分区,同时想创建 display=1 不区分省份的一个大分区。 表整体会有display不等于一的数据。
以下的sql该怎么改写
PARTITION BY LIST COLUMNS(reg_province,display)
(PARTITION ahs VALUES IN (‘安徽省’,1),
PARTITION bjs VALUES IN (‘北京市’,1),
PARTITION fjs VALUES IN (‘福建省’,1),
PARTITION gds VALUES IN (‘广东省’,1),
PARTITION hebs VALUES IN (‘河北省’,1),
PARTITION hubs VALUES IN (‘湖北省’,1),
PARTITION hens VALUES IN (‘河南省’,1),
PARTITION huns VALUES IN (‘湖南省’,1),
PARTITION jss VALUES IN (‘江苏省’,1),
PARTITION lns VALUES IN (‘辽宁省’,1),
PARTITION scs VALUES IN (‘四川省’,1),
PARTITION sds VALUES IN (‘山东省’,1),
PARTITION shs VALUES IN (‘上海市’,1),
PARTITION sxs VALUES IN (‘陕西省’,1),
PARTITION tjs VALUES IN (‘天津市’,1),
PARTITION zjs VALUES IN (‘浙江省’,1),
PARTITION gzs VALUES IN (‘贵州省’,1),
PARTITION di DEFAULT,1
PARTITION other DEFAULT,DEFAULT
)

研究了下,应该是不行

TiDB没有二级分区,你就建这个两个列的list columns,条件就传display,看下能走分区裁剪吗,能走就和二级分区性能区别不大

创建 display=1 不区分省份的一个大分区,这个条件很难吧,意思是省份字段为空,display是1呢?还是省份字段不是上面给定的字符串,然后后display是1

省份字段是什么都行,只满足display=就可以

PARTITION BY LIST COLUMNS(reg_province,display)
(PARTITION ahs VALUES IN ((‘安徽省’),(1)),
PARTITION bjs VALUES IN ((‘北京市’),(1)),
PARTITION fjs VALUES IN ((‘福建省’),(1)),
PARTITION gds VALUES IN ((‘广东省’),(1)),
PARTITION hebs VALUES IN ((‘河北省’),(1)),
PARTITION hubs VALUES IN ((‘湖北省’),(1)),
PARTITION hens VALUES IN ((‘河南省’),(1)),
PARTITION huns VALUES IN ((‘湖南省’),(1)),
PARTITION jss VALUES IN ((‘江苏省’),(1)),
PARTITION lns VALUES IN ((‘辽宁省’),(1)),
PARTITION scs VALUES IN ((‘四川省’),(1)),
PARTITION sds VALUES IN ((‘山东省’),(1)),
PARTITION shs VALUES IN ((‘上海市’),(1)),
PARTITION sxs VALUES IN ((‘陕西省’),(1)),
PARTITION tjs VALUES IN ((‘天津市’),(1)),
PARTITION zjs VALUES IN ((‘浙江省’),(1)),
PARTITION gzs VALUES IN ((‘贵州省’),(1)),
PARTITION di VALUES IN (DEFAULT,(1)),
PARTITION other VALUES in (DEFAULT,DEFAULT)) 我这个写法法有问题吗,一值报错呢

PARTITION di VALUES IN (DEFAULT,(1)),
PARTITION other VALUES in (DEFAULT,DEFAULT))
这两个都不支持,正常PARTITION other DEFAULT ,就支持这个

哪也只能实现 other剩余分区 不能实现全表入一个分区

可以试试### List COLUMNS 分区
https://docs.pingcap.com/zh/tidb/stable/partitioned-table#list-columns-分区
PARTITION BY LIST COLUMNS( reg_province ,display)
(PARTITION ahs VALUES IN ((‘安徽省’),(1)),

PARTITION di VALUES IN (DEFAULT,(1)),
partition other values IN ((‘安徽省’,‘北京市’,…),(1))

那你这这不冲突吗?上面有省份的也是display=1啊