Вопросы с тегом «unique-constraint»

Ограничения DDL UNIQUE гарантируют, что данные, содержащиеся в столбце или группе столбцов, являются уникальными среди всех строк в таблице. Поэтому данные, содержащиеся в соответствующем столбце или столбцах, полезны для уникальной идентификации строки в соответствующей таблице.

195
Когда я должен использовать уникальное ограничение вместо уникального индекса?

Когда я хочу, чтобы столбец имел разные значения, я могу использовать ограничение create table t1( id int primary key, code varchar(10) unique NULL ); go или я могу использовать уникальный индекс create table t2( id int primary key, code varchar(10) NULL ); go create unique index I_t2 on t2(code);...

94
PostgreSQL уникальное ограничение для нескольких столбцов и значения NULL

У меня есть таблица, подобная следующей: create table my_table ( id int8 not null, id_A int8 not null, id_B int8 not null, id_C int8 null, constraint pk_my_table primary key (id), constraint u_constrainte unique (id_A, id_B, id_C) ); И я хочу (id_A, id_B, id_C)быть отличным в любой ситуации....

36
Почему ограничение UNIQUE допускает только один NULL?

Технически, NULL = NULL является False, по этой логике никакой NULL не равен ни одному NULL, и все NULL различны. Разве это не означает, что все NULL являются уникальными, а уникальный индекс должен разрешать любое количество...

20
В чем разница между Первичным ключом и Супер ключом в СУБД

Я новичок в СУБД, и я все еще изучаю теорию. Я действительно запутался с этим ключевым бизнесом, и после поиска в Google я сузил его до двух ключей, которые я не получаю (первичный и супер ключ). У меня есть несколько вопросов по СУБД. Буду признателен, если вы сможете мне за них ответить. 1) В чем...

19
Пользовательское ограничение уникального столбца, применяется только в том случае, если один столбец имеет определенное значение

Можно ли иметь собственное ограничение уникального столбца следующим образом? Предположим, у меня есть два столбца subsetи typeобе строки (хотя типы данных, вероятно, не имеют значения). Если typeэто "правда", то я хочу, чтобы комбинация typeи subsetбыла уникальной. В противном случае, нет никаких...

15
Избегайте уникальных нарушений в атомарных транзакциях

Возможно ли создать атомарную транзакцию в PostgreSQL? Считайте, что у меня есть категория таблицы с этими строками: id|name --|--------- 1 |'tablets' 2 |'phones' И имя столбца имеет уникальное ограничение. Если я попробую: BEGIN; update "category" set name = 'phones' where id = 1; update...

15
Почему ключ должен быть явным?

Я очень плохо знаком с предметом баз данных, так что это может показаться невежественным, но мне любопытно, почему ключ должен быть явно указан в таблице. Это прежде всего для того, чтобы сообщить пользователю, что данное значение столбца (будем надеяться) гарантированно будет уникальным в каждой...

14
Отсроченный уникальный индекс в postgres

Глядя на документацию postgres для alter table , кажется, что регулярные ограничения могут быть помечены как DEFERRABLE(более конкретно, INITIALLY DEFERREDэто то, что меня интересует). Индексы также могут быть связаны с ограничением, если: Индекс не может иметь ни столбцов выражения, ни частичного...

14
Нужно ли удалять уникальный индекс при изменении размера столбца nvarchar? И будет ли таблица заблокирована при воссоздании индекса?

В нашей базе данных существует большая таблица, которая более или менее выглядит так: CREATE TABLE dbo.production_data ( pd_id BIGINT PRIMARY KEY, serial NVARCHAR(16) NOT NULL UNIQUE, ... ); но теперь размер последовательного поля стал слишком низким, поэтому я хочу изменить его на 32. Средство...

14
Индекс уникальности накладных расходов

В моем офисе ведутся постоянные дебаты о стоимости индекса, а также о том, является ли уникальность выгодной или дорогой (вероятно, и то и другое). Суть проблемы - наши конкурирующие ресурсы. Фон Ранее я читал обсуждение, в котором говорилось, что Uniqueиндекс не требует дополнительных затрат на...

14
Уникальные обновления индексов и счетчики модификаций строк статистики

Учитывая следующую таблицу, уникальный кластерный индекс и статистику: CREATE TABLE dbo.Banana ( pk integer NOT NULL, c1 char(1) NOT NULL, c2 char(1) NOT NULL ); CREATE UNIQUE CLUSTERED INDEX pk ON dbo.Banana (pk); CREATE STATISTICS c1 ON dbo.Banana (c1); CREATE STATISTICS c2 ON dbo.Banana (c2);...

13
PostgreSQL UPSERT проблема со значениями NULL

У меня проблема с использованием новой функции UPSERT в Postgres 9.5 У меня есть таблица, которая используется для агрегирования данных из другой таблицы. Составной ключ состоит из 20 столбцов, 10 из которых могут быть обнуляемыми. Ниже я создал уменьшенную версию проблемы, в частности, со...

11
Адрес электронной почты уникальный или первичный ключ?

Я новичок в базах данных. Я прочитал вокруг и обнаружил, что, вероятно, не очень хорошая идея использовать адрес электронной почты в качестве первичного ключа, потому что сравнение строк медленнее, что влияет на производительность в сложных объединениях, и если электронное письмо изменится, мне...

11
Удаляет ли создание уникального ограничения на столбце Postgres необходимость его индексировать?

Удаляет ли создание уникального ограничения на столбце Postgres необходимость его индексировать? Я ожидаю, что для эффективного поддержания ограничения автоматически необходим...

11
Почему это ОБНОВЛЕНИЕ терпит неудачу с нарушением ограничения уникального ключа?

Я «случайный» администратор баз данных, относительно неопытный и сбитый с толку этой проблемой. Запуск MS SQL Server 2012. Проблема с этим оператором UPDATE: UPDATE dbo.tAccts SET Ticket = 'ARP.ExGE' , Method = 'smtp' , AcctOwner = 'r00417819' , DisplayName = '~AppLight HBSFax-Inactive' ,...

11
Столбец NVARCHAR как ПЕРВИЧНЫЙ КЛЮЧ или как УНИКАЛЬНЫЙ столбец

Я занимаюсь разработкой базы данных SQL Server 2012 и у меня есть сомнения по поводу столбцов nvarchar в качестве первичных ключей. У меня есть эта таблица: CREATE TABLE [dbo].[CODES] ( [ID_CODE] [bigint] IDENTITY(1,1) NOT NULL, [CODE_LEVEL] [tinyint] NOT NULL, [CODE] [nvarchar](20) NOT NULL,...

10
Каковы соображения производительности между использованием широкого PK против отдельного синтетического ключа и UQ?

У меня есть несколько таблиц, в которых записи могут быть однозначно идентифицированы в нескольких широких областях бизнеса. В прошлом я использовал эти поля в качестве PK, имея в виду следующие преимущества: Простота; нет посторонних полей и только один индекс Кластеризация обеспечивает быстрые...

10
Почему составные внешние ключи требуют отдельного уникального ограничения?

Вот простая таблица, где записи могут ссылаться на родительские записи в той же таблице: CREATE TABLE foo ( id SERIAL PRIMARY KEY, parent_id INT NULL, num INT NOT NULL, txt TEXT NULL, FOREIGN KEY (parent_id) REFERENCES foo(id) ); С добавленным требованием, что одно из значений других полей ( num)...

10
Делает ли поле уникальным сделать его индексированным?

Если я наложу uniqueограничение на поле, нужно ли мне также создать индекс для этого поля, чтобы получить масштабируемое время вставки? Или это сделано для меня (даже если индекс, который он использует, не является общедоступным?) В частности, я работаю с Apache Derby для создания прототипов, хотя...