Столбец идентичности

Поле в базах данных

Столбец идентификаторов — это столбец (также известный как поле ) в таблице базы данных , который состоит из значений, сгенерированных базой данных. Это очень похоже на поле AutoNumber в Microsoft Access или последовательность в Oracle . Поскольку эта концепция так важна в науке о базах данных , многие системы RDBMS реализуют некоторый тип сгенерированного ключа, хотя каждая из них имеет свою собственную терминологию. Сегодня популярным методом генерации идентификаторов является генерация случайного UUID .

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

Распространенное заблуждение, что столбец идентификаторов будет обеспечивать уникальность; однако это не так. Если вы хотите обеспечить уникальность столбца, вы также должны включить соответствующее ограничение.

В Microsoft SQL Server у вас есть варианты как для начального значения (начального значения), так и для приращения. По умолчанию начальное значение и приращение равны 1.

Примеры кода

Создать таблицу Контакты ( FirstName varChar ( 30 ), LastName varChar ( 30 ), Phone varChar ( 16 ), ContactID int identity ( 1 , 1 ) )             

или

Создать таблицу Контакты ( FirstName varChar ( 30 ), LastName varChar ( 30 ), Phone varChar ( 16 ) ) GO Изменить таблицу Контакты Добавить ContactID int identity ( 1 , 1 )                

В PostgreSQL

CREATE TABLE contact ( contact_id bigint ГЕНЕРИРУЕТСЯ ВСЕГДА КАК IDENTITY , first_name varchar , last_name varchar , phone varchar );               

Часто бывает полезно или необходимо знать, какое значение идентификатора было сгенерировано командой INSERT . Microsoft SQL Server предоставляет несколько функций для этого: @@IDENTITY предоставляет последнее значение, сгенерированное в текущем соединении в текущей области, в то время как IDENT_CURRENT( tablename ) предоставляет последнее сгенерированное значение, независимо от соединения или области, в которой оно было создано.

Пример:

Вставить в Контакты ( FirstName , LastName ) Значения ( 'Test' , 'User' ) Выбрать @@Identity ИЛИ Объявить @ID int Выбрать @ID = @@Identity Обновить Контакты Установить Телефон = 'XXX-YYY-ZZZZ' Где ContactID = @ID                            

Смотрите также

Получено с "https://en.wikipedia.org/w/index.php?title=Identity_column&oldid=1244302079"