以下查询中有什么不正确?
CREATE TABLE `tbl_user_geolocation` (
`id` INT(11) NOT NULL AUTO_INCREMENT COMMENT 'Идентификатор',
`user_id` VARCHAR(100) NOT NULL COMMENT 'ID пользователя',
`client_type` VARCHAR(38) NULL DEFAULT NULL COMMENT 'Тип клиента',
`lat` DECIMAL(28,8) NOT NULL COMMENT 'Широта',
`lon` DECIMAL(28,8) NOT NULL COMMENT 'Долгота',
`created_at` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT 'Дата создания',
PRIMARY KEY (`id`, `user_id`)
)
PARTITION BY HASH(id+user_id) PARTITIONS 200;
错误:分区函数返回错误的类型。 1491.此表用于保存用户的地理位置数据
您需要将整数传递给HASH
函数。但在你的情况下,user_id
是VARCHAR
类型。
要使用HASH分区对表进行分区,必须在CREATE TABLE语句中附加PARTITION BY HASH(expr)子句,其中expr是一个返回整数的表达式。