#mysql
Вопрос:
У меня есть база данных с целым id
числом, которое может быть положительным или отрицательным. Однако положительное и отрицательное целое число с одинаковым абсолютным значением существовать не может.
Можно ли настроить ключ, который гарантировал id
бы уникальность абсолютного значения?
Следующая попытка возвращает синтаксическую ошибку:
ALTER TABLE `table` ADD KEY(ABS(`id`));
Комментарии:
1. что это
select version();
показывает?
Ответ №1:
Добавьте виртуальный сгенерированный столбец в структуру таблицы и однозначно проиндексируйте его.
ALTER TABLE tablename
ADD COLUMN abs_id INT AS (ABS(id)) VIRTUAL,
ADD UNIQUE INDEX (abs_id));