我运行MySQL 5.6,并具有如下表:MySQL分区错误
CREATE TABLE `rawdata` (
`RawDataSeq` int(10) unsigned NOT NULL AUTO_INCREMENT,
`SpeciesSeq` int(10) unsigned DEFAULT NULL,
`DataSourceSeq` int(10) unsigned DEFAULT NULL,
`MeasurementSeq` int(10) unsigned DEFAULT NULL,
`RecordingDateTime` datetime DEFAULT NULL,
`RawSensorData` varchar(100) DEFAULT NULL,
`RawDataNumeric` decimal(36,18) DEFAULT NULL,
`RawDataString` varchar(100) DEFAULT NULL,
`RawDataDate` datetime DEFAULT NULL,
`RawDataTime` varchar(45) DEFAULT NULL,
`RawDataDateTime` datetime DEFAULT NULL,
`ActiveRecord` int(10) unsigned DEFAULT NULL,
`LastUpdateDate` datetime DEFAULT NULL,
`UserId` varchar(6) DEFAULT NULL,
`BadData` varchar(200) DEFAULT NULL,
PRIMARY KEY (`RawDataSeq`)
) ENGINE=MyISAM AUTO_INCREMENT=5676258 DEFAULT CHARSET=latin1
我试图通过“RecordingDateTime”使用下面的命令分区表:
ALTER TABLE rawdata PARTITION BY RANGE (RecordingDateTime) (
PARTITION p0 VALUES LESS THAN (2013),
PARTITION p1 VALUES LESS THAN (2014),
PARTITION p2 VALUES LESS THAN (2015),
PARTITION p3 VALUES LESS THAN (UNIX_TIMESTAMP('2015-06-01 00:00:00')),
PARTITION p4 VALUES LESS THAN MAXVALUE
);
我收到以下错误消息:
查询:ALTER TABLE rawdata PARTITION BY RANGE(RecordingDateTime)(PARTITION p0值小于(2013),PARTITION p1的值小于... 错误代码:1659 字段'RecordingDateTime'是这种类型的分区不允许的类型
任何帮助,非常感谢。
这很棒,并且可以无缝工作。谢谢!!我还检查了有关分区维护的文章,并在12月份,我是否可以简单地删除所有分区并在2016年添加一个分区? –
注意:“DROP PARTITION”会丢失分区中的任何数据。 'REORGANIZE PARTITION'可用于组合(或拆分)分区。少于10个分区几乎没有任何用处。有超过50个分区可能会出现性能问题。 –