mytable вот так:
CREATE TABLE `test1` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`project_id` int(11) NOT NULL,
`md5` varchar(255) NOT NULL,
`create_time` datetime NOT NULL,
`update_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (`id`,`project_id`,`md5`),
KEY `index_id` (`md5`),
) ;
Я хочу разделить на md5
и project_id
。, поэтому я создаю функцию:
CREATE FUNCTION f2(md5 VARCHAR(255), project_id int(11))
RETURNS int
return MOD(md5, 10) + project_id;
Когда я разбиваю эту таблицу, используюэтот sql:
ALTER TABLE test1 PARTITION BY HASH(f2(md5, project_id)) PARTITIONS 100;
показывает:
Не допускаются выражения с постоянной, случайной или временной зависимостью в функции (под) разбиения.
Но ответ не является постоянным, случайным и зависит от часового пояса.Так что я не знаю, как сделать с id, кто может мне помочь?большое спасибо.