本节讨论 MySQL 分区中与分区表达式中使用的函数特别相关的限制。
分区表达式中只允许使用以下列表中显示的 MySQL 函数:
TO_DAYS()
在 MySQL 8.0 中,
TO_SECONDS()
、
YEAR()
、 和
UNIX_TIMESTAMP()
函数
支持分区剪枝。有关详细信息,请参阅
第 24.4 节,“分区修剪”。
天花板()和地板()。
这些函数中的每一个仅在传递给精确数字类型的参数时才返回整数,例如INT
or 类型
之一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
带有 WEEK 说明符的 EXTRACT() 函数。 EXTRACT()
当用作 时,函数
返回的值
取决于
系统变量的值。因此,
当将单位指定为 时,不允许作为分区函数
。(漏洞 #54483)
EXTRACT(WEEK FROM
col
)default_week_format
EXTRACT()
WEEK
有关这些函数的返回类型的更多信息,以及第 11.1 节,“数字数据类型” , 请参见第 12.6.2 节,“数学函数” 。