谁能解释一下mysqld分区为什么必须是主键或者唯一键的全部或者一部分吗(如果表存在主键或者唯一键)

解决方案 »

  1.   

    没这个要求吧?我建了个没有KEY的分区表也没问题啊,数据操作也没发现问题
    CREATE TABLE `a` (
      `id` int(11) DEFAULT NULL,
      `v` int(11) DEFAULT NULL
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8
    /*!50100 PARTITION BY RANGE (v)
    (PARTITION p0 VALUES LESS THAN (0) ENGINE = InnoDB,
     PARTITION p1 VALUES LESS THAN (100) ENGINE = InnoDB)
      

  2.   

    保证唯一性的需要吧,sql server中的解析,唯一只在每个分区上进行验证,所以如果唯一(主键或unique)不是分区列一部分的话,无法保证其唯一性