Related Documentation Download this Manual
PDF (US Ltr) - 40.8Mb
PDF (A4) - 40.9Mb
Man Pages (TGZ) - 294.0Kb
Man Pages (Zip) - 409.0Kb
Info (Gzip) - 4.0Mb
Info (Zip) - 4.0Mb
Excerpts from this Manual

MySQL 8.3 Reference Manual  /  ...  /  Partitioning Limitations Relating to Functions

26.6.3 分区限制相关函数

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

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

在 MySQL 8.3 中,对 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 specifier 的 EXTRACT() 函数。EXTRACT() 函数用作 EXTRACT(WEEK FROM col) 时,返回的值取决于 default_week_format 系统变量的值。因此,当 EXTRACT() 指定单位为 WEEK 时,不允许其作为分区函数。(Bug #54483)

请参阅 第 14.6.2 节,“数学函数”,以获取这些函数的返回类型的更多信息,以及 第 13.1 节,“数字数据类型”