我的表像这样:
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;它显示:
不允许(子)分区函数中的常数、随机或时区相关表达式.
但答案并不是常数、随机性和时区依赖性的。所以我不知道怎么用身份证,谁能帮我?非常感谢。
https://stackoverflow.com/questions/54760736
复制相似问题