Как сделать столбец уникальным sql
Для того чтобы гарантировать уникальность значений одного поля используют ключевое слово UNIQUE . Обычно это делается при создании таблицы.
CREATE TABLE products ( id bigint PRIMARY KEY, name text UNIQUE, price numeric );
Если же таблица уже создана, то добавить ограничение уникальности можно с помощью ALTER TABLE . ADD . Это делается следующим образом:
ALTER TABLE users ADD UNIQUE (email)
Как сделать столбец уникальным после создания таблицы БД?

Я создал таблицу в базе данных и понял, что забыл сделать столбец уникальным. Перехожу на вкладку «Структура», ставлю столбцу галочку в A_I, сохраняю — вылезает ошибка:
- Вопрос задан более трёх лет назад
- 1408 просмотров
Комментировать
Решения вопроса 1
Вкладка «Структура» → нажать у нужного столбца «Первичный» → «Изменить» → поставить галочку A_I
Ответ написан более трёх лет назад
Комментировать
Нравится 1 Комментировать
Ответы на вопрос 3

mysql alter table
ps глянул на скриншот — а там kod_roditel. Я не знаю, чем тут помочь.
Ответ написан более трёх лет назад
Комментировать
Нравится 2 Комментировать

нельзя просто так взять и загуглить ошибку
A_I это не уникальный столбец, а автоинкрементальный столбец.
Про индексы читайте, а точнее unique индексы.
Ответ написан более трёх лет назад
Комментировать
Нравится 1 Комментировать

ЧупаКобрус
нажимаете структура ищете строку где жирным написано kod_roditel и в правой части этой строки квадратики разные, при наведении можно найти квадратик уникальный.
Ответ написан более трёх лет назад
Комментировать
Нравится 1 Комментировать
Ваш ответ на вопрос
Войдите, чтобы написать ответ

- MySQL
- +1 ещё
TypeORM не обрабатывает запросы на русском языке, как исправить?
- 1 подписчик
- 15 часов назад
- 51 просмотр
SQL UNIQUE
Ограничение UNIQUE в SQL позволяет идентифицировать каждую запись в таблице. Если помещается ограничение столбца UNIQUE в поле при создании таблицы, база данных отклонит любую попытку ввода в это поле для одной из строк, значения, которое уже представлено в другой строке. Это ограничение может применяться только к полям, которые были объявлены как непустые (NOT NULL), так как не имеет смысла позволить одной строке таблицы иметь значение NULL, а затем исключать другие строки с NULL значениями как дубликаты.
SQL Server / Oracle / Access
Пример создания таблицы SQL с ограничением UNIQUE:
CREATE TABLE Student ( Kod_stud integer NOT NULL UNIQUE, Fam char (30) NOT NULL UNIQUE, Adres char (50), Ball decimal);
Когда обьявляется поле Fam уникальным, две Смирновых Марии могут быть введены различными способами — например, Смирнова Мария и Смирнова М. Столбцы (не первичные ключи), чьи значения требуют уникальности, называются ключами-кандидатами или уникальными ключами. Можно определить группу полей как уникальную с помощью команды ограничения таблицы — UNIQUE. Объявление группы полей уникальной, отличается от объявления уникальными индивидуальных полей, так как это комбинация значений, а не просто индивидуальное значение, которое обязано быть уникальным. Уникальность группы заключается в том, что пары строк со значениями столбцов «a», «b» и «b», «a» рассматривались отдельно одна от другой.
Если база данных определяет, что каждая специальность принадлежит одному и только одному факультету, то каждая комбинация кода факультета(Kod_f) и кода специальности(Kod_spec) в таблице Spec должна быть уникальной. Например:
CREATE TABLE Spec ( Kod_spec integer NOT NULL, Kod_f integer NOT NULL, Nazv_spec char (50) NOT NULL, UNIQUE (Kod_spec, Kod_f));
Оба поля в ограничении таблицы UNIQUE все еще используют ограничение столбца — NOT NULL. Если бы использовалось ограничение столбца UNIQUE для поля Kod_spec, такое ограничение таблицы было бы необязательным. Если значения поля Kod_spec различно для каждой строки, то не может быть двух строк с идентичной комбинацией значений полей Kod_spec и Kod_f.
Ограничение таблицы UNIQUE наиболее полезно, когда индивидуальные поля не обязательно должны быть уникальными.
MySQL UNIQUE
Пример создания таблицы Persons в MySQL с ограничением UNIQUE:
CREATE TABLE Persons ( P_Id int NOT NULL, LastName varchar(255) NOT NULL, FirstName varchar(255), Address varchar(255), City varchar(255), UNIQUE (P_Id) );
Удалить ограничение UNIQUE
Если после создания ограничения UNIQUE и в том случае, когда ограничение UNIQUE не имеет смысла, UNIQUE можно удалить. Для этого используйте следующий SQL: SQL Server / Oracle / MS Access:
ALTER TABLE table_name DROP CONSTRAINT uc_PersonID;
MySQL:
Unique Constraints SQL Server
В SQL Server (Transact-SQL) Unique Constraints как создавать, удалять, отключать, и включать unique constraints (уникальные ограничения)
Уникальное ограничение — это одно поле или комбинация полей, которые однозначно определяют запись. Некоторые из полей могут содержать нулевые значения, если комбинация значений уникальна.
В чем разница между уникальным ограничением и первичным ключом?
Первичный ключ — поля, которые являются частью первичного ключа, не могут содержать значение NULL.
Уникальное ограничение — некоторые поля, которые являются частью уникального ограничения, могут содержать значения NULL, если комбинация значений уникальна.
Создание уникального ограничения — использование оператора CREATE TABLE
Синтаксис создания уникального ограничения с использованием оператора CREATE TABLE в SQL
CREATE TABLE table_name
(
column1 datatype [ NULL | NOT NULL ],
column2 datatype [ NULL | NOT NULL ],
.
CONSTRAINT constraint_name UNIQUE (uc_col1, uc_col2, . uc_col_n)
);
table_name — имя таблицы, которую вы хотите создать.
column1 , column2 — столбцы, которые вы хотите создать в таблице.
constraint_name — имя уникального ограничения.
uc_col1 , uc_col2 , . uc_col_n — столбцы, которые составляют уникальное ограничение.
Пример
Рассмотрим пример создания уникального ограничения в SQL Server с помощью опертора CREATE TABLE.