Spec-Zone .ru
спецификации, руководства, описания, API
|
Этот раздел обсуждает ограничения в MySQL Partitioning, имеющем отношение определенно к функциям, используемым в разделении выражений.
Только функции MySQL, показанные в следующей таблице, поддерживаются в разделении выражений.
ABS() |
CEILING()
(см. CEILING() и FLOOR() )
|
DAY() |
DAYOFMONTH()
|
DAYOFWEEK() |
DAYOFYEAR() |
DATEDIFF() |
EXTRACT()
(см. EXTRACT()
функция с WEEK спецификатор)
|
FLOOR() (см.
CEILING() и FLOOR() )
|
HOUR()
|
MICROSECOND() |
MINUTE() |
MOD() |
MONTH() |
QUARTER()
|
SECOND() |
TIME_TO_SEC() |
TO_DAYS()
|
TO_SECONDS()
|
UNIX_TIMESTAMP() (разрешенный начинание с MySQL 5.6.1 и полностью
поддерживаемое начинание с MySQL 5.6.3, сTIMESTAMP столбцы)
|
WEEKDAY()
|
YEAR()
|
YEARWEEK()
|
В MySQL 5.6 сокращение раздела поддерживается для TO_DAYS()
, TO_SECONDS()
, и YEAR()
функции. Кроме того, начинание с MySQL 5.6.3, UNIX_TIMESTAMP()
обрабатывается как монотонный в разделении выражений. См. Раздел 18.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
системная переменная. Поэтому начинание с MySQL 5.6.2, EXTRACT()
дольше разрешается как функция разделения, когда она определяет
модуль как WEEK
. (Ошибка #54483)
См. Раздел 12.6.2, "Математические Функции", для получения дополнительной информации о типах возврата этих функций, так же как Разделе 11.2, "Числовые Типы".