Как сделать столбец TEXT уникальным в MySQL
Есть таблица table в MySQL.
Как сделать столбец des уникальным, учитывая что его тип - TEXT?
Туда планирую вставлять тексты длиной больше 1000 символов\
Пытаюсь сделать через phpmyAmdin, но не получается
При вставке текста буду писать такой запрос, чтобы он пропускал дублирующие тексты:
INSERT IGNORE INTO table...
Но для этого нужен столбец des уникальный
Ответы (1 шт):
Теоретически - создать уникальный индекс. Поскольку без указания длины индексируемого префикса поле типа TEXT индексировать нельзя - указать заведомо больше (стараясь не вылететь за пределы размера индекса).
Но я бы предложил создать вычисляемое поле хэша этого текстового поля, и вот именно по нему уже создавать уникальный индекс. При правильном выборе алгоритма хэширования вероятность коллизии исчезающе мала.

