MySQL 8.0 リファレンスマニュアル


MySQL 8.0 リファレンスマニュアル  /  ...  /  関数に関連するパーティショニング制限

24.6.3 関数に関連するパーティショニング制限

このセクションでは特に、パーティショニング式で使用される関数に関連する、MySQL パーティショニングの制限について説明します。

パーティション化式で使用できるのは、次のリストに示す MySQL 関数のみです:

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「数値データ型」を参照してください。


関連キーワード:  パーティショニング, 関数, 制限, EXTRACT, FLOOR, 参照, 管理, LIST, セクション, CEILING