Mysql分区表对函数的限制


  本文标签:Mysql分区表

  Mysql分区表不仅对主键约束有着局限性,对Mysql分区表的语句使用的函数也有着一些限制,下面就让我们来一起了解一下  。

  在mysql5.1中建立Mysql分区表的语句中,只能包含下列函数:
ABS()
CEILING() and FLOOR() (在使用这2个函数的建立Mysql分区表的前提是使用函数的分区键是INT类型),例如

  1. mysql> CREATE TABLE t (c FLOAT) PARTITION BY LIST( FLOOR(c) )(      
  2.     -> PARTITION p0 VALUES IN (1,3,5),   
  3.     -> PARTITION p1 VALUES IN (2,4,6)   
  4.     -> );;  
  5. ERROR 1491 (HY000): The PARTITION function returns the wrong type   
  6.  
  7. mysql> CREATE TABLE t (c int) PARTITION BY LIST( FLOOR(c) )(   
  8.     -> PARTITION p0 VALUES IN (1,3,5),   
  9.     -> PARTITION p1 VALUES IN (2,4,6)   
  10.     -> );  
  11. Query OK, 0 rows affected (0.01 sec)  

  DAY()
DAYOFMONTH()
DAYOFWEEK()
DAYOFYEAR()
DATEDIFF()
EXTRACT()
HOUR()
MICROSECOND()
MINUTE()
MOD()
MONTH()
QUARTER()
SECOND()
TIME_TO_SEC()
TO_DAYS()
WEEKDAY()
YEAR()
YEARWEEK()