Różnica między Identity a Sequence w @GeneratedValue

0

Witam, czy mógłby ktoś napisać prostymi słowami, jaka jest różnica między tymi strategiami generowania ID? Czytałem StackOverflow, ale nadal nie wiem, po co to i dlaczego.

1

Niektóre bazy danych posiadają specjalne typy danych (auto increment / identity). Jeśli w tabeli jest pole tego typu, to wstawienie kolejnych wierszy powoduje, że wartość przechowywana przez dane pole jest automatycznie zwiększana. Nie wszystkie bazy mają taki wynalazek, ale niektóre mają coś co się nazywa "sekwencje". Można definiować sekwencje, która zaczyna się od wartości X, zwiększa się o Y, resetuje itd.

Strategia:

  • IDENTITY opiera się właśnie o ten mechanizm bazodanowy (specjalny typ danych: IDENTITY/ auto_increment)
  • SEQUENCE opiera się o mechanizm sekwencji
  • TABLE - wartości przechowywane są w dedykowanej tabeli (bo np. nie ma ani sekwencji ani IDENTITY), więc trzeba "kolejną wolną" wartość przechowywać w jakiejś tabelce

1 użytkowników online, w tym zalogowanych: 0, gości: 1