我有一个主键为varchar(255)的表。在某些情况下,255个字符是不够的。我尝试将字段更改为文本,但我得到以下错误:
BLOB/TEXT column 'message_id' used in key specification without a key length
我该如何解决这个问题?
编辑:我还应该指出,这个表有一个多列的复合主键。
我有一个主键为varchar(255)的表。在某些情况下,255个字符是不够的。我尝试将字段更改为文本,但我得到以下错误:
BLOB/TEXT column 'message_id' used in key specification without a key length
我该如何解决这个问题?
编辑:我还应该指出,这个表有一个多列的复合主键。
当前回答
像这样使用
@Id
@Column(name = "userEmailId", length=100)
private String userEmailId;
其他回答
去mysql编辑表->更改列类型为varchar(45)。
我知道现在已经很晚了,但是删除唯一键约束解决了这个问题。我没有使用TEXT或LONGTEXT列作为PK,但我试图使它独特。我得到了1170的错误,但当我删除了英国,错误也被删除了。
我不完全明白为什么。
你可以在alter table请求中指定键的长度,就像这样:
alter table authors ADD UNIQUE(name_first(20), name_second(20));
像这样使用
@Id
@Column(name = "userEmailId", length=100)
private String userEmailId;
如果你的数据类型是TEXT -你将不得不改变它为VARCHAR 方案1:查询
ALTER TABLE table_name MODIFY COLUMN col_name datatype;
ALTER TABLE my_table MODIFY COLUMN my_col VARCHAR(255);
解决方案2:GUI (MySQL工作台) 步骤1 -在文本框中写入
Step2 -编辑数据类型,应用