MySQL 8.0参考手册
MySQL 8.0发行说明
MySQL 8.0提供了支持名单列
分区。这是一个的变体列表
分区,使多个列作为分区键的使用,和非整数数据类型的列类型用作分区列;您可以使用字符串类型,日期
,DATETIME
列。(关于允许的数据类型的更多信息列
分区列,看到3.3节,“列分区”)。
假设您有一个业务,客户在12个城市,为销售和市场营销的目的,你整理成4三地区的城市每个如下表所示:
地区 | 城市 |
---|---|
1 | 奥斯卡,Hogsby蓬莱蕉 |
2 | Vimmerby、Hultsfred Vastervik |
3 | Nassjo、Eksjo Vetlanda |
4 | Uppvidinge、Alvesta Vaxjo |
与名单列
分区,您可以创建一个表为客户数据分配连续的4个分区对应于这些地区基于客户所在的城市的名称,如下所示:
创建表customers_1 (first_name VARCHAR (25)、last_name VARCHAR (25), street_1 VARCHAR (30), street_2 VARCHAR(30),城市VARCHAR(15),更新日期)分区通过列表列(市)(分区pRegion_1值(“奥斯卡”,“Hogsby”、“蓬莱蕉”),分区pRegion_2值(‘Vimmerby’,‘Hultsfred’,‘Vastervik’),分区pRegion_3值(‘Nassjo’,‘Eksjo’,‘Vetlanda’),分区pRegion_4值(‘Uppvidinge’,‘Alvesta’, ' Vaxjo '));
与分区的范围列
,你不需要使用表达式列()
条款将列值转换为整数。(事实上,表达式的使用除了列名是不允许的列()
)。
也可以使用日期
和DATETIME
列,如以下示例所示,使用相同的名称和列customers_1
表显示之前,但雇佣了名单列
分区的基础上更新
列4行存储在一个分区根据本周在2010年2月客户的账户计划更新:
创建表customers_2 (first_name VARCHAR (25)、last_name VARCHAR (25), street_1 VARCHAR (30), street_2 VARCHAR(30),城市VARCHAR(15),更新日期)分区通过列表列(更新)(分区pWeek_1值(“2010-02-01”,“2010-02-02”,“2010-02-03”,“2010-02-04”,“2010-02-05”,“2010-02-06”,“2010-02-07”),分区pWeek_2值(“2010-02-08”,“2010-02-09”,“2010-02-10”,“2010-02-11”,“2010-02-12”,“2010-02-13”,“2010-02-14”),分区pWeek_3值(“2010-02-15”,“2010-02-16”,“2010-02-17”,“2010-02-18”,“2010-02-19”,“2010-02-20”,“2010-02-21”),分区pWeek_4值(“2010-02-22”,“2010-02-23”,“2010-02-24”,“2010-02-25”,“2010-02-26”,“2010-02-27”,“2010-02-28”));
定义和维护这个作品,但就麻烦如果日期涉及到数量的增加非常大;在这种情况下,它通常是更实际的使用范围
或范围列
分区。在这种情况下,因为我们希望使用分区键列日期
列中,我们使用范围列
分区,如下所示:
创建表customers_3 (first_name VARCHAR (25)、last_name VARCHAR (25), street_1 VARCHAR (30), street_2 VARCHAR(30),城市VARCHAR(15),更新日期)范围分区的列(更新)(分区pWeek_1值小于(“2010-02-09”),分区pWeek_2值小于(“2010-02-15”),分区pWeek_3值小于(“2010-02-22”),分区pWeek_4值小于(' 2010-03-01 '));
看到3.3.1节,“范围列分区”为更多的信息。
此外(如范围列
分区),您可以使用多个列列()
条款。
看到CREATE TABLE语句额外的信息分区通过列表列()
语法。