0

以下は、実際に分割されたテーブルです。

 CREATE TABLE `idea_partition` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `mdn` varchar(45) NOT NULL,
  `keyword` varchar(45) NOT NULL,
  `circle` varchar(45) DEFAULT NULL,
  `status` varchar(45) NOT NULL,
  `mode` varchar(25) DEFAULT NULL,
  `action` varchar(45) DEFAULT NULL,
  `mobile_type` varchar(45) DEFAULT NULL,
  `date` datetime NOT NULL,
  `sunsign` varchar(45) DEFAULT NULL,
  `numerology` int(10) unsigned DEFAULT NULL,
  `unsubdate` datetime DEFAULT NULL,
  `user` varchar(15) DEFAULT NULL,
  `pass` varchar(15) DEFAULT NULL,
  `refid` varchar(64) DEFAULT NULL,
  `info` varchar(128) DEFAULT NULL,
  `precharge` varchar(1) DEFAULT NULL,
  `originator` varchar(15) DEFAULT NULL,
  `price` double(6,2) DEFAULT NULL,
  `renewal_count` int(11) DEFAULT '1',
  PRIMARY KEY (`id`,`date`),
  UNIQUE KEY `Index_on_mdn_keyword_status` (`mdn`,`keyword`,`status`,`date`),
  KEY `Index_2` (`mdn`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1
PARTITION BY RANGE( TO_DAYS(date) ) (
PARTITION rx201201 VALUES LESS THAN( TO_DAYS('2012-01-01 00:00:00') ), 
PARTITION rx201202 VALUES LESS THAN( TO_DAYS('2012-02-01 00:00:00') ), 
PARTITION rx201203 VALUES LESS THAN( TO_DAYS('2012-03-01 00:00:00') ), 
PARTITION rx201204 VALUES LESS THAN( TO_DAYS('2012-04-01 00:00:00') ), 
PARTITION rx201205 VALUES LESS THAN( TO_DAYS('2012-05-01 00:00:00') ), 
PARTITION rx201206 VALUES LESS THAN( TO_DAYS('2012-06-01 00:00:00') ), 
PARTITION rx201207 VALUES LESS THAN( TO_DAYS('2012-07-01 00:00:00') ), 
PARTITION rx201208 VALUES LESS THAN( TO_DAYS('2012-08-01 00:00:00') ), 
PARTITION rx201209 VALUES LESS THAN( TO_DAYS('2012-09-01 00:00:00') ), 
PARTITION rxMORES VALUES LESS THAN (MAXVALUE) );

日付列のパーティションによって、既存の範囲に新しいパーティションを追加することは可能ですか? 以下のように -

ALTER TABLE idea_partition partition (TO_DAYS(date)) partition rx201301 VALUES LESS THAN (TO_DAYS('2013-01-01 00:00:00');

エラーが発生しました..!! しかし、それを達成する方法があるとしたら?

4

3 に答える 3

2

ALTER Table次のようにしてパーティションを追加できます

ALTER TABLE TableName ADD PARTITION (PARTITION PartitionName VALUES LESS THAN PartitionVlue);

ただし、変更してパーティションの上限を超えることはできないことを覚えておいてください。

詳細についてはこちらをお読みください

于 2012-08-09T11:01:34.817 に答える
0

MAXVALUES 未満の場合はそのカテゴリに適合しようとするため、最初に PARTITION rxMORES VALUES LESS THAN (MAXVALUE) を削除する必要があるという答えが得られました。rxMORES パーティションを削除すると、新しいパーティションで後の値が受け入れられます。

mysql> alter table idea_partition drop partition rxMORES; Query OK, 0 rows affected (0.15 sec) Records: 0 Duplicates: 0 Warnings: 0 

mysql> ALTER TABLE idea_partition ADD PARTITION (PARTITION rx201301 VALUES LESS THAN ( TO_DAYS('2013-01-01 00:00:00'))); Query OK, 0 rows affected (0.23 sec) Records: 0 Duplicates: 0 Warnings: 0 mysql> 
于 2012-08-09T11:19:17.963 に答える