26.6.3 Ограничения по разбиению, связанные с функциями
В этом разделе обсуждаются ограничения MySQL Partitioning, относящиеся конкретно к функциям, используемым в выражениях разбиения.
В выражениях разбиения разрешены только функции MySQL, представленные в следующем списке:
CEILING()(см. CEILING() и FLOOR())FLOOR()(см. CEILING() и FLOOR())UNIX_TIMESTAMP()(с колонками типаTIMESTAMP)
В MySQL 8.4 поддерживается обрезка разбиений для функций 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
Функция EXTRACT() с указателем WEEK. Значение, возвращаемое функцией EXTRACT() при использовании в качестве EXTRACT(WEEK FROM
, зависит от значения системной переменной col)default_week_format. По этой причине функция EXTRACT() не разрешена в качестве функции разбиения, когда она указывает единицу измерения как WEEK. (Ошибка #54483)
Дополнительная информация о типах возвращаемых значений этих функций, а также о разделе 14.6.2, «Математические функции», и разделе 13.1, «Числовые типы данных».
© 2025 Oracle
Licensed under the GPLv2 License.