Как сделать столбец TEXT уникальным в MySQL

Есть таблица table в MySQL.
Как сделать столбец des уникальным, учитывая что его тип - TEXT?
Туда планирую вставлять тексты длиной больше 1000 символов\

введите сюда описание изображения

Пытаюсь сделать через phpmyAmdin, но не получается

введите сюда описание изображения

При вставке текста буду писать такой запрос, чтобы он пропускал дублирующие тексты:

INSERT IGNORE INTO table...

Но для этого нужен столбец des уникальный


Ответы (1 шт):

Автор решения: Akina

Теоретически - создать уникальный индекс. Поскольку без указания длины индексируемого префикса поле типа TEXT индексировать нельзя - указать заведомо больше (стараясь не вылететь за пределы размера индекса).

Но я бы предложил создать вычисляемое поле хэша этого текстового поля, и вот именно по нему уже создавать уникальный индекс. При правильном выборе алгоритма хэширования вероятность коллизии исчезающе мала.

→ Ссылка