mysqlパーティションテーブルの作成と操作

1441 ワード

/*パーティション表を月ごとに作成*/
create table o_order(id int auto_increment comment '  ', 
orderid varchar(200) comment '   ',
account varchar(50) comment '  ', 
status int comment '   0    1   2  ', 
addtime datetime comment '    ', 
rvctime datetime comment '    ', 
remark varchar(200) comment '  ',
primary key (id,addtime)
)engine=innodb partition by range(to_days(addtime)) 
( partition p201411 values less than (to_days('2014-11-01')), 
partition p201412 values less than (to_days('2014-12-01')), 
partition p201501 values less than (to_days('2015-01-01')),
partition p201502 values less than (to_days('2015-02-01')), 
partition p201503 values less than (to_days('2015-03-01')));

パーティションの追加
ALTER TABLE o_order ADD PARTITION (PARTITION  p201504 values less than (to_days('2015-04-01')));

パーティションの削除
ALTER TABLE o_order DROP PARTITION p201504;  

--パーティション表情報の表示
SHOW CREATE TABLE o_order;
SHOW TABLE STATUS LIKE 'o_order';
SELECT   
        partition_name part,    
        partition_expression expr,    
        partition_description descr,    
        table_rows    
FROM   
        INFORMATION_SCHEMA.partitions    
WHERE   
        TABLE_SCHEMA = schema()   
        AND TABLE_NAME='  ';