Als je vastbesloten bent om het met de eerste letter te doen, denk ik dat RANGE-partitionering zou het lukken. Als u echter geen absolute vereiste hebt voor het partitioneren met de eerste letter, LINEAIRE KEY-partitionering misschien beter.
Hier is een voorbeeld dat ik van de man-pagina heb gehaald en aangepast om een varchar-kolom te gebruiken:
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
);
En het uitvoeren:
... 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]