Klucze główne w Oracle, autoinkrementacja oraz funkcja sys_guid

W odróżnieniu od innych baz, w Oraclu do wersji 11g, do tworzenia inkrementacji klucza głównego nie mogliśmy użyć zwyczajnie autonumeracji jak na poniższym przykładzie w MySQL

Zamiast tego trzeba było stosować wyzwalacz, który pobierał wartość z sekwencji.

Lata pózniej w wersji 12c wprowadzono możliwość określenia takiej właściwości przy tworzeniu tabeli, w prostszy sposób.

Funkcja sys_guid.

W niektórych przypadkach przydatna może być funkcja sys_guid generująca i zwracająca globalny, unikalny ID (RAW, do 16 bajtów). Składa się z id hosta, procesu lub id wątku oraz niepowtarzalnej wartości. Nie jest to inkrementacja tzn. nie są to kolejne „user-friendly” liczby, a wartości heksadecymalne (vide wynik przykładu 1. poniżej). Poza tym może być używana jako wartość domyślna w CREATE TABLE (DEFAULT)

 

Przykłady sys_guid():
1. Aktualizacja kolumny.

Wynik:

UID_COL
—————————————-
7CD5B7769DF75CEFE034080020825436
7CD5B7769DF85CEFE034080020825436
7CD5B7769DF95CEFE034080020825436
7CD5B7769DFA5CEFE034080020825436

2. Zastosowanie przy uzyciu wyzwalacza

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *