Мы можем объявить Identity
как, id_num
так что id_num
будет иметь приращение уникальных чисел.
CREATE TABLE new_employees
(
id_num int IDENTITY(1,1),
fname varchar (20),
minit char(1),
lname varchar(30)
)
Это рекомендуется использовать в Identity
качестве альтернативы , Primary key
так как при Identity
условии , уникальный номер для каждой строки?
IDENTITY
в качестве первичного ключа (а не в качестве альтернативы PK). Это дает очень хороший, очень эффективный первичный ключ (который по умолчанию также является ключом кластеризации в SQL Server) - он узкий, обычно статический, обычно уникальный (если вы не играете со спецификацией идентификации), и он всегда увеличениеОтветы:
Identity columns
иPrimary Keys
две очень разные вещи. AnIdentity column
предоставляет автоинкрементное число. Это все, что он делает.Primary Key
(По крайней мере , в SQL Server) является ограничение уникальности , что гарантирует уникальность и, как правило (но не всегда) кластерный ключ. Опять же, в MS SQL Server это тоже индекс (в некоторых СУБД они не так тесно связаны). В качестве индекса он обеспечивает более быстрые поиски и т. Д. ЧастоIdentity columns
используются как,Primary Key
если ничего хорошего неnatural key
существует, но не являются заменой.источник
clustered index key
там, где он говоритprimary key
.Нет, это не так, потому что личность не гарантирует уникальную ценность. Свойство identity можно обойти с помощью
SET IDENTITY_INSERT <schema>.<table> ON
(в SQL Server - вы не указали, какую СУБД вы используете).Ограничение первичного ключа (и ограничение уникальности) использует уникальный индекс для обеспечения уникальности.
источник
Identity
иPrimary Key
не эквивалентны и служат двум разным целям.