MySQL 8.4 Release Notes
26.6.3 分区限制与函数
本节讨论MySQL分区中特定于在分区表达式中使用的函数的限制。
仅允许在分区表达式中使用以下MySQL函数:
-
UNIX_TIMESTAMP()
(与TIMESTAMP
类型的列一起使用)
在MySQL 8.4中,支持对TO_DAYS()
、TO_SECONDS()
、YEAR()
和UNIX_TIMESTAMP()
函数的分区裁剪。请参阅第26.4节,“分区裁剪”,获取更多信息。
CEILING()和FLOOR(). 每个函数都返回一个整数,只要它接收到一个精确的数字类型的参数,如INT
类型或DECIMAL
。这意味着,例如,以下CREATE TABLE
语句会因为错误而失败,如下所示:
mysql> CREATE TABLE t (c FLOAT) PARTITION BY LIST( FLOOR(c) )(
-> PARTITION p0 VALUES IN (1,3,5),
-> PARTITION p1 VALUES IN (2,4,6)
-> );
ERROR 1490 (HY000): The PARTITION function returns the wrong type
EXTRACT()函数中的WEEK指定符。当使用EXTRACT()
函数时,作为EXTRACT(WEEK FROM
,返回值取决于col
)default_week_format
系统变量的值。因此,当指定单位为WEEK
时,EXTRACT()
不允许作为分区函数。(Bug #54483)
查看第14.6.2节,“数学函数”,了解这些函数的返回类型,以及第13.1节,“数值数据类型”。