Столбец Oracle IDENTITY и ПЕРВИЧНЫЙ КЛЮЧ - PullRequest
1 голос
/ 24 октября 2019

Не удается найти что-то определенное в отношении того, нужно ли указывать этот столбец IDENTITY как PRIMARY KEY в Oracle 12.2c. Создает ли автоматически столбец IDENTITY, например, PK? Это просто избыточно? Я верю, что у вас может быть столбец IDENTITY и отдельный PK, хотя мы этого не делаем.

ID NUMBER AS IDENTITY PRIMARY KEY == ID NUMBER AS IDENTITY ?

Ответы [ 3 ]

1 голос
/ 24 октября 2019

Создает ли автоматически столбец IDENTITY индекс, например, PK?

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

Это просто избыточность?

Нет.

Я верю, что у вас может быть столбец IDENTITY и отдельный PK

Да, вы можете.

хотя мы этого не делаем.

Хорошо, если вы имеете в виду, что у вас нет отдельного столбца PK в дополнение к столбцу идентификаторов. Было бы неплохо определить ограничение PK для столбца идентификаторов.

1 голос
/ 24 октября 2019

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

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

https://www.oracletutorial.com/oracle-basics/oracle-identity-column/

0 голосов
/ 24 октября 2019

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

Вы успешно смешали 3 ортогональных понятия:

  • логика: PRIMARY KEY ограничение
  • физический: INDEX
  • автоматическая генерация значений: IDENTITY столбец

Создает ли автоматически столбец IDENTITY индекс, например, PK? Это просто избыточно?

Эти вопросы зависят от версии. IDENTITY само было введено в Oracle 12.x.

Я действительно считаю, что вы можете иметь столбец IDENTITY и отдельный PK, хотя мы этого не делаем.

Вы правы здесь.

Автоматическая генерация значений, логическое ограничение и организация физических данных ортогональны друг другу.

...