0

次のクエリの何が間違っていますか?

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.ユーザーの地理的位置データの保存に使用するこのテーブル

4

1 に答える 1

3

関数に整数を渡す必要がありHASHます。しかし、あなたの場合user_idはタイプVARCHARです。

18.2.3。ハッシュ分割

HASHパーティション化を使用してテーブルをパーティション化するには、CREATETABLEステートメントにPARTITIONBY HASH(expr)句を追加する必要があります。ここで、exprは整数を返す式です

于 2013-03-24T08:52:29.803 に答える