MySQL 9.0 參考手冊  /  ...  /  關於函數的分割限制

26.6.3 關於函數的分割限制

本節討論 MySQL 分割中,特別是與分割表達式中使用的函數相關的限制。

分割表達式中僅允許使用以下列表中顯示的 MySQL 函數

在 MySQL 9.0 中,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

使用 WEEK 指定符的 EXTRACT() 函數。 當用作 EXTRACT(WEEK FROM col) 時,EXTRACT() 函數傳回的值取決於 default_week_format 系統變數的值。因此,當 EXTRACT() 將單位指定為 WEEK 時,不允許將其作為分割函數。(錯誤 #54483)

請參閱 第 14.6.2 節,「數學函數」以取得關於這些函數傳回類型的更多資訊,以及 第 13.1 節,「數值資料類型」