MySQL 8.0 参考手册  / 第24章分区  / 24.6 分区的约束和限制  /  22.6.3 与函数相关的分区限制

22.6.3 与函数相关的分区限制

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

分区表达式中只允许使用以下列表中显示的 MySQL 函数:

TO_DAYS()在 MySQL 5.7 中, TO_SECONDS()YEAR()、 和 UNIX_TIMESTAMP()函数 支持分区修剪。有关详细信息,请参阅 第 22.4 节,“分区修剪”

天花板()和地板()。  这些函数中的每一个仅在传递给精确数字类型的参数时才返回整数,例如INTor 类型 之一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_formatEXTRACT()WEEK

有关这些函数的返回类型的更多信息,以及第 11.1 节,“数字数据类型” , 请参见第 12.6.2 节,“数学函数” 。