CREATE TABLE PartitionTest
(
   pid                  INT NOT NULL AUTO_INCREMENT,
   pname                VARCHAR(100) NOT NULL,
   ptime                DATETIME NOT NULL,
   PRIMARY KEY (ptime, pid)
)
ENGINE = MYISAM
PARTITION BY RANGE columns(ptime)(
PARTITION PartitionTest_0 VALUES LESS THAN ('2014-04-01'),
PARTITION PartitionTest_1 VALUES LESS THAN ('2014-05-01')
);

解决方案 »

  1.   

    CREATE TABLE PartitionTest
     (
        pid                  INT NOT NULL AUTO_INCREMENT,
        pname                VARCHAR(100) NOT NULL,
        ptime                DATETIME NOT NULL,
        PRIMARY KEY (ptime, pid)
     )
     ENGINE = MYISAM
     PARTITION BY RANGE(MONTH(ptime))(
     PARTITION  PartitionTest_0 VALUES LESS THAN  (4),
     PARTITION  PartitionTest_1 VALUES LESS THAN (5)
     );ormysql 5.5CREATE TABLE PartitionTest
     (
        pid                  INT NOT NULL AUTO_INCREMENT,
        pname                VARCHAR(100) NOT NULL,
        ptime                DATETIME NOT NULL,
        PRIMARY KEY (ptime, pid)
     )
     ENGINE = MYISAM
     PARTITION BY RANGE COLUMNS (ptime)(
     PARTITION  PartitionTest_0 VALUES LESS THAN  ('2014-04-01'),
     PARTITION  PartitionTest_1 VALUES LESS THAN ('2014-05-01')
     );
      

  2.   

    sorry  语法都打错了,第一次弄不熟悉
      

  3.   


    其实MYSQL已经告诉你哪出错了。 参考一下MYSQL官方免费手册中的例子。
    CREATE TABLE employees (
        id INT NOT NULL,
        fname VARCHAR(30),
        lname VARCHAR(30),
        hired DATE NOT NULL DEFAULT '1970-01-01',
        separated DATE NOT NULL DEFAULT '9999-12-31',
        job_code INT NOT NULL,
        store_id INT NOT NULL
    )
    PARTITION BY RANGE (store_id) (
        PARTITION p0 VALUES LESS THAN (6),
        PARTITION p1 VALUES LESS THAN (11),
        PARTITION p2 VALUES LESS THAN (16),
        PARTITION p3 VALUES LESS THAN (21)
    );