比如说
我要建一个表rrr
(id int primary key,
  name char,
  grade int)
我想叫他根据grade分区,可以么?
怎么分 
求一代码!
我现在是这样写的
creat table rrr
(id int primary key,
  name char,
  grade int)
partition by list(grade)(
partition p1 values in (1),
partition p2 values in (2),
partition p3 values in (3),
partition p4 values in (4)
);
请指点错误之处。

解决方案 »

  1.   

    分区函数依据的列必须包括在主键中!
    另外注意你的 (id i  应该是 (id i 注意符号的全角半角
      

  2.   

    依据中必须有主键么
    如果我就想按照grade分区的话,
    该怎么做呢
      

  3.   

    creat table rrr
    也不对 create table rrr建议自己先把基本的语法错误消除再贴上来。
      

  4.   

    mysql> create table rrr
        -> (id int ,
        ->   name char,
        ->   grade int
        -> )
        -> partition by list(grade)(
        -> partition p1 values in (1),
        -> partition p2 values in (2),
        -> partition p3 values in (3),
        -> partition p4 values in (4)
        -> );
    Query OK, 0 rows affected (0.11 sec)mysql>
      

  5.   

    把这个分区字段加入到主键中。别无选择。mysql> create table rrr
        -> (id int ,
        ->   name char,
        ->   grade int,
        ->   primary key (id,grade)
        -> )
        -> partition by list(grade)(
        -> partition p1 values in (1),
        -> partition p2 values in (2),
        -> partition p3 values in (3),
        -> partition p4 values in (4)
        -> );
    Query OK, 0 rows affected (0.11 sec)mysql>
      

  6.   

    把这个分区字段加入到主键中。别无选择。mysql> create table rrr
        -> (id int ,
        ->   name char,
        ->   grade int,
        ->   primary key (id,grade)
        -> )
        -> partition by list(grade)(
        -> partition p1 values in (1),
        -> partition p2 values in (2),
        -> partition p3 values in (3),
        -> partition p4 values in (4)
        -> );
    Query OK, 0 rows affected (0.11 sec)mysql>