create table if not exists tb_data(
data_dt datetime,
dev_sn varchar(16),
fV1 float(10,2),
fV2 float(10,2),
PRIMARY KEY (data_dt,dev_sn)
)ENGINE=InnoDB DEFAULT CHARSET=utf8 PARTITION BY RANGE (COUNT(*))(
PARTITION p0 VALUES LESS THAN (1000000),
PARTITION p1 VALUES LESS THAN (2000000));请问这样子为什么不行!提示[Err] 1564 - This partition function is not allowed
我就是想用行数来分区,小于100万行做为第一个分区,100万到200万作为第二个分区......
请各位大侠出招,谢谢!
data_dt datetime,
dev_sn varchar(16),
fV1 float(10,2),
fV2 float(10,2),
PRIMARY KEY (data_dt,dev_sn)
)ENGINE=InnoDB DEFAULT CHARSET=utf8 PARTITION BY RANGE (COUNT(*))(
PARTITION p0 VALUES LESS THAN (1000000),
PARTITION p1 VALUES LESS THAN (2000000));请问这样子为什么不行!提示[Err] 1564 - This partition function is not allowed
我就是想用行数来分区,小于100万行做为第一个分区,100万到200万作为第二个分区......
请各位大侠出招,谢谢!
CREATE TABLE IF NOT EXISTS tb_data(
id INT AUTO_INCREMENT,
data_dt DATETIME,
dev_sn VARCHAR(16),
fV1 FLOAT(10,2),
fV2 FLOAT(10,2),
PRIMARY KEY (id)
)ENGINE=INNODB DEFAULT CHARSET=utf8 PARTITION BY RANGE (id)(
PARTITION p0 VALUES LESS THAN (1000000),
PARTITION p1 VALUES LESS THAN (2000000));orCREATE TABLE IF NOT EXISTS tb_data(
id INT NOT NULL,
data_dt DATETIME,
dev_sn VARCHAR(16),
fV1 FLOAT(10,2),
fV2 FLOAT(10,2)
)ENGINE=INNODB DEFAULT CHARSET=utf8 PARTITION BY RANGE (id)(
PARTITION p0 VALUES LESS THAN (1000000),
PARTITION p1 VALUES LESS THAN (2000000));
2 分区的依据,id,时间(年/年月...),区域(城市/部门..)
3 count(*)当然不可能用来做依据,依据只能是当前行直接相关的字段