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

@GeneratedValue(strategy= "IDENTITY" ) vs. @GeneratedValue (strategy = "SEQUENCE" )

Я новичок в спящем режиме. Я не понимаю следующие две стратегии генерации первичных ключей:

  • Идентичность
  • Последовательность

Может кто-нибудь объяснить, как эти два работают и в чем разница между этими двумя?

4b9b3361

Ответ 1

Задание Сохранение/идентификация и секвенирование Java:

Последовательность идентификации использует специальные столбцы IDENTITY в базе данных, чтобы позволить базе данных автоматически назначать идентификатор объекту при его вставке. Столбцы идентификаторов поддерживаются во многих базах данных, таких как MySQL, DB2, SQL Server, Sybase и Postgres. Oracle не поддерживает столбцы IDENTITY, но их можно моделировать с помощью объектов последовательности и триггеров.

На простом английском языке вы отмечаете не более одного столбца ID в своей таблице как IDENTITY. Механизм базы данных автоматически добавит вам следующее доступное значение.

и

Последовательно объекты используют специальные объекты базы данных для создания идентификаторов. Объекты последовательностей поддерживаются только в некоторых базах данных, таких как Oracle, DB2 и Postgres. Обычно объект SEQUENCE имеет имя, INCREMENT и другие параметры объекта базы данных. Каждый раз, когда выбирается <sequence>.NEXTVAL, последовательность увеличивается с помощью INCREMENT.

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