Подтвердить что ты не робот

Какая разница между Первичным ключом и Идентичностью?

В SQL Server db в чем разница между основным ключом и столбцом Identity? Столбец может быть первичным ключом, не являясь отступом. Однако столбец не может быть личностью, не являясь первичным ключом.

В дополнение к различиям, что предлагает столбец PK и Identity, что только столбец PK не работает?

edit: Ой. Как указано ниже и теперь проверено мной, столбец может быть личным, не являясь PK. Когда я проверил это, мой тип столбца был строкой, и я не смог установить его на личность. Имеет смысл.

4b9b3361

Ответ 1

Столбец может определенно быть тождественным, не являясь PK.

Тождество - это просто увеличивающий рост столбец.

Первичный ключ - это уникальный столбец или столбцы, которые определяют строку.

Эти два часто используются вместе, но нет требования, чтобы это было так.

Ответ 2

Этот ответ больше относится к идентификатору WHY и первому ключу, чем ЧТО они с тех пор, как Джо ответил ЧТО правильно выше.

Идентификатор - это значение, которое вы контролируете SQL. Идентификация - это функция строки. Он является последовательным либо возрастающим, либо уменьшающимся по стоимости, по крайней мере, в SQL Server. Его никогда не следует изменять, а пробелы в значении следует игнорировать. Значения идентичности очень полезны при привязке таблицы B к таблице A, поскольку значение никогда не дублируется. Идентичность не является лучшим выбором для кластерного индекса в каждом случае. Если таблица содержит данные аудита, кластеризованный индекс может быть лучше создан в дату, когда он представит ответ на вопрос "что произошло между сегодняшним днем ​​и четырьмя днями назад" с меньшим количеством работы, поскольку записи для дат являются последовательными в страниц данных.

Первичный ключ делает столбец или столбцы в строке уникальными. Ключ Primay - это функция столбца. Только один ключ приоритета может быть определен в любой таблице, но может быть создано несколько уникальных индексов, имитирующих первичный ключ. Кластеризация первичного ключа не всегда является правильным выбором. Рассмотрим телефонную книгу. Если телефонная книга сгруппирована клавишей primay (номер телефона), запрос на возврат телефонных номеров на "First Street" будет очень дорогостоящим.

Общие правила, которые я использую для идентификации и первичного ключа, следующие:

  • Всегда используйте столбец идентификаторов
  • Создайте кластерный индекс в столбце или столбцах, которые используются при поиске по диапазону
  • Держите кластеризованный индекс узким, поскольку кластерный индекс добавляется в конец каждого другого индекса
  • Создайте ключ приоритета и уникальные индексы для отклонения повторяющихся значений
  • Узкие ключи лучше
  • Создайте индекс для каждого столбца или столбцов, используемых в объединениях

Это мои общие правила.

Ответ 3

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

Свойство IDENTITY эффективно создает автоматически увеличивающееся значение по умолчанию для столбца. Этот столбец не обязательно должен быть уникальным, поэтому столбец IDENTITY не обязательно является ключом.

Однако столбец IDENTITY обычно предназначен для использования в качестве ключа, поэтому он обычно имеет ограничение уникальности для обеспечения того, чтобы дубликаты не были разрешены.

Ответ 4

РЕДАКТОРЫ НА ОСНОВЕ ОБРАТНОЙ СВЯЗИ

Ключ уникален для строки. Это способ определения строки. Строки могут не содержать ни одного, ни одного или нескольких ключей. Эти ключи могут состоять из одного или нескольких столбцов.

Ключи - это индексы с уникальным ограничением. Это отличает их от неключевых индексов.

Любой индекс с несколькими столбцами называется "составным индексом".

Традиционно первичный ключ рассматривается как главный ключ, который однозначно идентифицирует строку. Может быть только один из них.

В зависимости от дизайна таблицы первичный ключ не может быть.

Первичный ключ - это просто "основной ключ". Это основной, который определяет уникальный идентификатор строки. В зависимости от дизайна таблицы это может быть неправильным, а множественные ключи выражают уникальность.

В SQL Server первичный ключ может быть сгруппирован. Это означает, что остальные столбцы привязаны к этому ключу на уровне листа индекса. Другими словами, как только SQL Server нашел ключ, он также нашел строку (чтобы быть ясной, это из-за кластеризованного аспекта).

Столбец идентичности - это просто метод создания уникального идентификатора для строки.

Эти два часто используются вместе, но это не является обязательным требованием.

Ответ 5

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

Ответ 6

Вы можете использовать IDENTITY не только с целыми числами, но и с любым числовым типом данных, который имеет шкалу 0

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

ИДЕНТИФИКАЦИЯ, в сочетании с ограничением PRIMARY KEY или UNIQUE, позволяет вам предоставить простой уникальный идентификатор строки