如何使用memsql在表中添加多个唯一键?

时间:2017-11-07 06:10:15

标签: memsql

使用MemSQL我想创建一个包含多个唯一键和一个主键的表。但我不知道如何在表格中添加多个唯一键。这是我的表:

CREATE TABLE IF NOT NOT EXISTS user_auth(   id bigint(20)NOT NULL AUTO_INCREMENT,   user_id bigint(20)NOT NULL,   code char(36)NOT NULL,   rest_code char(36)NOT NULL,   password varchar(100)NOT NULL,   pswd_updated_on datetime NOT NULL,   主要关键(id) );

我想在user_id,code,rest_code列上添加唯一键。

1 个答案:

答案 0 :(得分:2)

您需要在足够的列上添加分片键,以使每个唯一/主键包含分片键。如果您没有指定分片键,则选择主键,并且因为(user_id,code,rest_code)不是分片键的一部分(隐式地在id上),所以它将不起作用。这是因为MemSQL需要能够在本地解析重复项,即在单个分片中。

我会尝试shard(user_id), primary key(user_id, id), unqiue key(user_id, code, rest_code)之类的东西。是的,将user_id添加到主键是多余的,我正在对您的应用做一些假设,但我的猜测是数据库实际上不必担心多个用户“声称相同的ID”,所以这会奏效。

祝你好运:)