Ошибка MySQL: спецификация ключа без длины ключа - PullRequest
320 голосов
/ 01 декабря 2009

У меня есть таблица с первичным ключом, который является varchar (255). Возникло несколько случаев, когда 255 символов недостаточно. Я попытался изменить поле на текст, но я получаю следующую ошибку:

BLOB/TEXT column 'message_id' used in key specification without a key length

как я могу это исправить?

edit: Я также должен отметить, что в этой таблице есть составной первичный ключ с несколькими столбцами.

Ответы [ 15 ]

0 голосов
/ 20 сентября 2018

Перейти к MySQL edit table -> изменить тип столбца на varchar(45).

0 голосов
/ 20 сентября 2018

Для индексации необходимо изменить тип столбца на varchar или integer.

0 голосов
/ 05 сентября 2018

Используйте вот так

@Id
@Column(name = "userEmailId", length=100)
private String userEmailId;
0 голосов
/ 10 октября 2017

Решение проблемы состоит в том, что в вашем операторе CREATE TABLE вы можете добавить ограничение UNIQUE ( problemtextfield(300) ) после того, как столбец создаст определения, чтобы указать длину key 300 символов для поля TEXT пример. Тогда первые 300 символы поля problemtextfield TEXT должны быть уникальными, и любые различия после этого будут игнорироваться.

0 голосов
/ 17 марта 2015

Кроме того, если вы хотите использовать индекс в этом поле, вы должны использовать механизм хранения MyISAM и тип индекса FULLTEXT.

...