У меня есть таблица:
table votes (
id,
user,
email,
address,
primary key(id),
);
Теперь я хочу сделать столбцы user, email, address уникальными (вместе).
Как мне сделать это в MySql?
Конечно, пример просто ... пример. Поэтому, пожалуйста, не беспокойтесь о семантике.
У меня есть таблица MySQL:
и UNIQUE KEY работает так, как ожидалось, он допускает несколько пустых строк id_box_elements и id_router.
Я использую MySQL 5.1.42, поэтому, возможно, произошли некоторые изменения в проблеме, рассмотренной выше. К счастью, это работает и, надеюсь, так и останется.
источник
Многостолбцовые уникальные индексы не работают в MySQL, если в строке указано значение NULL, поскольку MySQL рассматривает NULL как уникальное значение и, по крайней мере, в настоящее время не имеет логики для его обхода в многостолбцовых индексах. Да, это безумное поведение, потому что оно ограничивает множество легитимных приложений многостолбцовых индексов, но это то, чем оно является ... На данный момент это ошибка, которая была помечена как "не исправит" в MySQL. ошибка-трек ...
источник
ENGINE BDB
, и, 2) это документированное поведение, хотя, ИМХО, не документировано достаточно открыто, учитывая, насколько оно может быть удивительным / неприятным. См. MySQL bug 25544 bugs.mysql.com/bug.php?id=25544 для обсуждения.Вы пробовали это?
источник
UNIQUE KEY
thekey` (user
,email
,address
) `. Я использую MYSQL версии 5.5.24. Вы можете установить это даже в PHPMYADMIN, если вы его используете. Я использую 3.5.1 версию PMA.Это работает для MySQL версии 5.5.32
источник
MySql 5 или выше ведет себя так (я только что проверил):
Пример: PRODUCT_NAME, PRODUCT_VERSION 'стекло', ноль 'стекло', ноль 'вино', 1
Теперь, если вы попытаетесь вставить ('wine' 1) снова, он сообщит о нарушении ограничения. Надеюсь, это поможет
источник
Вы можете добавить уникальные индексы с несколькими столбцами через phpMyAdmin . (Я тестировал в версии 4.0.4)
Перейдите на страницу структуры для вашей целевой таблицы. Добавьте уникальный индекс в один из столбцов. Разверните список индексов внизу страницы структуры, чтобы увидеть уникальный индекс, который вы только что добавили. Щелкните значок редактирования, и в следующем диалоговом окне вы можете добавить дополнительные столбцы к этому уникальному индексу.
источник
Я делаю это так:
Мое соглашение для уникального
index_name
естьTableName_Column1_Column2_Column3_uindex
.источник
Для добавления уникального индекса необходимо следующее:
1) table_name
2) index_name
3) столбцы, по которым вы хотите добавить индекс
В вашем случае мы можем создать уникальный индекс следующим образом:
источник
Если вы хотите избежать дубликатов в будущем. Создайте другой столбец, скажем, id2.
Теперь добавьте уникальное в двух столбцах:
источник
Если вы создаете таблицу в MySQL, используйте следующее:
источник
Сначала избавьтесь от существующих дубликатов
Затем добавьте уникальное ограничение
Проверьте ограничение с
Обратите внимание, что пользователь, адрес электронной почты и адрес будут считаться уникальными, если любой из них имеет нулевое значение.
источник
Для PostgreSQL ... У меня не работало с индексом; это дало мне ошибку, поэтому я сделал это:
PostgreSQL дал уникальному индексу собственное имя. Я думаю, вы можете изменить имя индекса в опциях для таблицы, если это необходимо изменить ...
источник