sql >> データベース >  >> RDS >> Mysql

今年の毎月のパーティションを作成するにはどうすればよいですか

    これは、バグ である可能性があります。 または制限。

    月次パーティショニングの場合は、次のことを試してください。

    SQLFiddleデモ

    ALTER TABLE t1 PARTITION BY RANGE(transaction_date)(
    PARTITION JAN VALUES LESS THAN (UNIX_TIMESTAMP('2013-02-01')),
    PARTITION FEB VALUES LESS THAN (UNIX_TIMESTAMP('2013-03-01')),
    PARTITION MAR VALUES LESS THAN (UNIX_TIMESTAMP('2013-04-01')),
    PARTITION APR VALUES LESS THAN (UNIX_TIMESTAMP('2013-05-01')),
    PARTITION MAY VALUES LESS THAN (UNIX_TIMESTAMP('2013-06-01')),
    PARTITION JUN VALUES LESS THAN (UNIX_TIMESTAMP('2013-07-01')),
    PARTITION JUL VALUES LESS THAN (UNIX_TIMESTAMP('2013-08-01')),
    PARTITION AUG VALUES LESS THAN (UNIX_TIMESTAMP('2013-09-01')),
    PARTITION SEP VALUES LESS THAN (UNIX_TIMESTAMP('2013-10-01')),
    PARTITION `OCT` VALUES LESS THAN (UNIX_TIMESTAMP('2013-11-01')),
    PARTITION NOV VALUES LESS THAN (UNIX_TIMESTAMP('2013-12-01')),
    PARTITION `DEC` VALUES LESS THAN (UNIX_TIMESTAMP('2014-01-01'))
    );
    

    データ型としてDATEを持つ列がある場合は、月次パーティション内の日次パーティション化にこれを試すことができます。サブパーティション化 MySQLで

    SQLFiddleデモ

    ALTER TABLE t1 
    PARTITION BY RANGE( MONTH(FROM_UNIXTIME(transaction_date) )
    SUBPARTITION BY HASH( DAY(FROM_UNIXTIME(transaction_date)) )
    SUBPARTITIONS 31 (
        PARTITION p0 VALUES LESS THAN (2),
        PARTITION p1 VALUES LESS THAN (3),
        PARTITION p2 VALUES LESS THAN (4),
        PARTITION p3 VALUES LESS THAN (5),
        PARTITION p4 VALUES LESS THAN (6),
        PARTITION p5 VALUES LESS THAN (7),
        PARTITION p6 VALUES LESS THAN (8),
        PARTITION p7 VALUES LESS THAN (9),
        PARTITION p8 VALUES LESS THAN (10),
        PARTITION p9 VALUES LESS THAN (11),
        PARTITION p10 VALUES LESS THAN (12),
        PARTITION p11 VALUES LESS THAN MAXVALUE
    );
    



    1. 階層的に定義されたデータセットのフラット化されたテーブル/ビューの作成

    2. AMD、Intel、およびPostgreSQL

    3. Postgresqlで大文字と小文字を区別しないクエリを作成するにはどうすればよいですか?

    4. SQLiteNOTNULL制約