Tôi tự hỏi liệu có chức năng mod được phép trong khi tạo phân vùng hay không, tôi đã thực hiện nó bằng cách sử dụng
CREATE TABLE ti (id INT, amount DECIMAL(7,2))
ENGINE=INNODB
PARTITION BY HASH( MOD(id,10) )
PARTITIONS 10;
điều này đã tạo ra 10 phân vùng, mỗi id đi trong phân vùng của nó kết thúc bằng cùng một số với chữ số cuối cùng của id
Tôi đã thêm một vài hàng
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);
sau đó thử nghiệm nó
SELECT
partition_name part,
partition_expression expr,
partition_description descr,
table_rows
FROM
INFORMATION_SCHEMA.partitions
WHERE
TABLE_SCHEMA = SCHEMA()
AND TABLE_NAME='ti';
ĐẦU RA:
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
chính xác những gì tôi muốn, cảm ơn bạn đã trỏ đến đúng liên kết Ẩn danh, nhưng câu trả lời của bạn sai, có lẽ bạn đã hiểu sai nó