本节讨论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()功能。有关更多信息,请参见 第24.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()当用作时 ,函数返回的值 取决于系统变量的值 。因此,当将单位指定为时, 不允许将其用作分区功能 。(缺陷#54483) EXTRACT(WEEK FROM *col*)default_week_formatEXTRACT()WEEK
有关这些函数的返回类型以及第11.1节“数值数据类型”的更多信息,请参见第12.6.2节“数学函数”。
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




