MySQL 9.0 参考手册  /  ...  /  与函数相关的分区限制

26.6.3 与函数相关的分区限制

本节讨论了 MySQL 分区中与分区表达式中使用的函数相关的具体限制。

在分区表达式中,只允许以下列表中显示的 MySQL 函数

在 MySQL 9.0 中,分区剪枝支持 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

带 WEEK 说明符的 EXTRACT() 函数。 EXTRACT() 函数用作 EXTRACT(WEEK FROM col) 时,返回值取决于 default_week_format 系统变量的值。因此,当 EXTRACT() 指定单位为 WEEK 时,不允许将它用作分区函数。(错误 #54483)

有关这些函数的返回值类型以及 第 13.1 节,“数值数据类型” 的更多信息,请参见 第 14.6.2 节,“数学函数”