MySQL 8.0 リファレンスマニュアル MySQL NDB Cluster 8.0 を含む
このページは機械翻訳したものです。
このセクションでは特に、パーティショニング式で使用される関数に関連する、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() 関数によって返される値は、EXTRACT(WEEK FROM として使用されるときに、col)default_week_format システム変数の値に依存します。 このため、ユニットを WEEK として指定した場合、EXTRACT() はパーティション化関数として許可されません。 (Bug #54483)
これらの関数の戻り型についての詳細は、セクション12.6.2「数学関数」およびセクション11.1「数値データ型」を参照してください。