• 首页
  • vue
  • TypeScript
  • JavaScript
  • scss
  • css3
  • html5
  • php
  • MySQL
  • redis
  • jQuery
  • 与分区相关函数的限制

    本节讨论MySQL分区中的限制,这些限制专门与分区表达式中使用的函数有关。

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

    • ABS()
    • CEILING()(请参阅 CEILING()和FLOOR())
    • DATEDIFF()
    • DAY()
    • DAYOFMONTH()
    • DAYOFWEEK()
    • DAYOFYEAR()
    • EXTRACT()(请参阅带有WEEK说明符的EXTRACT()函数)
    • FLOOR()(请参阅 CEILING()和FLOOR())
    • HOUR()
    • MICROSECOND()
    • MINUTE()
    • MOD()
    • MONTH()
    • QUARTER()
    • SECOND()
    • TIME_TO_SEC()
    • TO_DAYS()
    • TO_SECONDS()
    • UNIX_TIMESTAMP()(带TIMESTAMP列)
    • WEEKDAY()
    • YEAR()
    • YEARWEEK()

    在MySQL 8.0,分区修剪被支撑为TO_DAYS()TO_SECONDS()YEAR(),和UNIX_TIMESTAMP()功能。有关更多信息,请参见“分区修剪”。

    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()当用作时,函数返回的值取决于系统变量的值。因此,当将单位指定为时,不允许将其用作分区功能。(缺陷#54483)EXTRACT(WEEK FROM col)default_week_formatEXTRACT()WEEK

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