本節討論 MySQL 分割中,特別是與分割表達式中使用的函數相關的限制。
分割表達式中僅允許使用以下列表中顯示的 MySQL 函數
UNIX_TIMESTAMP()(搭配TIMESTAMP欄位)
在 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 節,「數值資料類型」。