Może to być błąd
lub ograniczenia.
W przypadku partycjonowania miesięcznego możesz spróbować tego:
Pokaz SQLFiddle
<>ALTER TABELA t1 PARTYCJA WEDŁUG ZAKRESU(data_transakcji)(WARTOŚCI PARTYCJI JAN MNIEJSZE NIŻ (UNIX_TIMESTAMP('2013-02-01')),WARTOŚCI PARTYCJI LUT MNIEJSZE NIŻ (UNIX_TIMESTAMP('2013-03-01')) ),WARTOŚCI MAR PARTYCJI MNIEJSZE NIŻ (UNIX_TIMESTAMP('2013-04-01')),WARTOŚCI PARTYCJI APR MNIEJSZE NIŻ (UNIX_TIMESTAMP('2013-05-01')),PARTYCJA MOŻE WARTOŚCI MNIEJSZE NIŻ (UNIX_TIMESTAMP('2013-06) -01')),WARTOŚCI PARTYCJI MNIEJSZE NIŻ (UNIX_TIMESTAMP('2013-07-01')),WARTOŚCI PARTYCJI JUL MNIEJSZE NIŻ (UNIX_TIMESTAMP('2013-08-01')),WARTOŚCI SIEDZENIA PARTYCJI MNIEJSZE NIŻ (UNIX_TIMESTAMP( '2013-09-01')),WARTOŚCI WRZEŚNIA PARTYCJI MNIEJSZE NIŻ (UNIX_TIMESTAMP('2013-10-01')),PARTYCJA `OCT' WARTOŚCI MNIEJSZE NIŻ (UNIX_TIMESTAMP('2013-11-01')),PARTITION LISTOPAD WARTOŚCI MNIEJSZE NIŻ (UNIX_TIMESTAMP('2013-12-01')),PARTITION `DEC` WARTOŚCI MNIEJSZE NIŻ (UNIX_TIMESTAMP('2014-01-01')));
Jeśli masz kolumnę z typem danych DATE, możesz spróbować tego dla partycjonowania dziennego wewnątrz partycjonowania miesięcznego:Spróbuj użyć podpartycjonowanie
w MySQL
Pokaz SQLFiddle
ALTER TABELA t1 PARTITION BY RANGE( MIESIĄC(FROM_UNIXTIME(data_transakcji))SUBPARTITION BY HASH(DAY(FROM_UNIXTIME(data_transakcji)) )PODPARTYCJE 31 ( PARTYCJA p0 WARTOŚCI MNIEJSZE NIŻ (2), PARTYCJA p1 WARTOŚCI MNIEJSZE NIŻ ( 3), PODGRYW p2 WARTOŚCI MNIEJ NIŻ (4), PODGRZEW p3 WARTOŚCI MNIEJ NIŻ (5), PODGRZEW p4 WARTOŚCI MNIEJ NIŻ (6), PODGRZEWANIU p5 WARTOŚCI MNIEJ NIŻ (7), PODGRZEWANIU p6 WARTOŚCI MNIEJ NIŻ (8), PODGRZEWANIU p7 WARTOŚCI MNIEJSZE NIŻ (9), PARTYCJA p8 WARTOŚCI MNIEJSZE NIŻ (10), PARTYCJA p9 WARTOŚCI MNIEJSZE NIŻ (11), PARTYCJA p10 WARTOŚCI MNIEJ NIŻ (12), PARTYCJA p11 WARTOŚCI MNIEJSZE NIŻ MAKS.);