Nếu bạn quyết tâm làm điều đó bằng chữ cái đầu tiên, tôi nghĩ rằng Phân vùng RANGE sẽ thực hiện thủ thuật. Tuy nhiên, nếu bạn không có yêu cầu tuyệt đối cho việc phân vùng theo chữ cái đầu tiên, Phân vùng TỪ KHÓA TUYẾN TÍNH có thể tốt hơn.
Đây là một ví dụ mà tôi đã lấy ra từ trang hướng dẫn sử dụng và sửa đổi để sử dụng cột varchar:
CREATE TABLE employees (
id INT NOT NULL,
fname VARCHAR(30),
lname VARCHAR(30),
hired DATE NOT NULL DEFAULT '1970-01-01',
separated DATE NOT NULL DEFAULT '9999-12-31',
job_code INT NOT NULL,
store_id INT NOT NULL
)
PARTITION BY RANGE COLUMNS(fname) (
PARTITION p0 VALUES LESS THAN ('h'),
PARTITION p1 VALUES LESS THAN ('m'),
PARTITION p2 VALUES LESS THAN ('t'),
PARTITION p3 VALUES LESS THAN MAXVALUE
);
Và chạy nó:
... Physical database connection acquired for: Feynman
12:33:07 [CREATE - 0 row(s), 0.062 secs] Command processed. No rows were affected
... 1 statement(s) executed, 0 row(s) affected, exec/fetch time: 0.062/0.000 sec [0 successful, 1 warnings, 0 errors]