Zastanawiałem się, czy podczas tworzenia partycji dozwolona jest funkcja mod, zrobiłem to za pomocą
CREATE TABLE ti (id INT, amount DECIMAL(7,2))
ENGINE=INNODB
PARTITION BY HASH( MOD(id,10) )
PARTITIONS 10;
to utworzyło 10 partycji, z których każda wchodzi do swojej partycji, kończąc na tym samym numerze, co ostatnia cyfra identyfikatora
Dodałem kilka wierszy
INSERT INTO ti VALUES (23123,343.22);
INSERT INTO ti VALUES (23123,343.22);
INSERT INTO ti VALUES (23144,343.22);
INSERT INTO ti VALUES (23114,343.22);
INSERT INTO ti VALUES (23124,343.22);
INSERT INTO ti VALUES (23166,343.22);
INSERT INTO ti VALUES (23116,343.22);
INSERT INTO ti VALUES (23112,343.22);
INSERT INTO ti VALUES (23199,343.22);
następnie przetestowałem to
SELECT
partition_name part,
partition_expression expr,
partition_description descr,
table_rows
FROM
INFORMATION_SCHEMA.partitions
WHERE
TABLE_SCHEMA = SCHEMA()
AND TABLE_NAME='ti';
WYJŚCIE:
part expr descr table_rows
p0 MOD(id,10) \N 0
p1 MOD(id,10) \N 0
p2 MOD(id,10) \N 1
p3 MOD(id,10) \N 2
p4 MOD(id,10) \N 3
p5 MOD(id,10) \N 0
p6 MOD(id,10) \N 2
p7 MOD(id,10) \N 0
p8 MOD(id,10) \N 0
p9 MOD(id,10) \N 1
dokładnie to, czego chciałem, dzięki za wskazanie właściwego linku Incognito, ale twoja odpowiedź była błędna, być może źle to zrozumiałeś