错误代码1170,SQL状态42000:BLOB / TEXT列'令牌'用于密钥规范而没有密钥长度

时间:2016-04-26 12:01:03

标签: mysql

我创建了一个MYSQL表,其中包含两列的表(user_id,token) 此表将存储每个用户的设备的GCM令牌

  

user_id是整数,令牌是文本

我将令牌设为TEXT,因为我不知道令牌的大小 但是,当我尝试使这两个列像这样独特时

ALTER TABLE user_account_device_token ADD UNIQUE idx_row_unique(user_id,token);

错误显示为此问题的标题。 我该怎么办这个问题? 我读了旧问题,但没有答案符合我的问题 我感谢任何帮助。非常感谢。

1 个答案:

答案 0 :(得分:2)

小虫子:

您必须在“文本”字段中指定char的长度才能使用索引。在我的示例中,他们使用100个字符作为索引。文本字段的最大长度为767。

ALTER TABLE user_account_device_token ADD UNIQUE
idx_row_unique(user_id,token(100));