Количество байтов в индексе ограничено.Например, InnoDB ограничивает индекс до 767 байтов (как объяснено в документации ).Поэтому, в зависимости от вашей строки, вы не сможете определить уникальный индекс или первичный ключ для всех столбцов.
Реализация хэша имеет два недостатка:
- Хэшиесть столкновения.Таким образом, вероятность может быть очень мала (в зависимости от алгоритма хеширования), но она существует.
- Вам необходимо добавить значение хеш-функции, что обычно означает использование триггера.
Это все возможно - как и триггеры вставки / обновления, гарантирующие уникальность.
Однако я предполагаю, что вам не нужно уникальное ограничение для всех столбцов.Некоторое подмножество, вероятно, разумно, чтобы гарантировать уникальность.И если они уникальны, весь ряд уникален.