Podsumowanie: w tym samouczku dowiesz się, jak używać kolumny Oracle identity do łatwego definiowania automatycznie generowanej kolumny numerycznej dla tabeli.

Wprowadzenie do kolumny Oracle identity

Oracle 12c wprowadził nowy sposób definiowania kolumny identity dla tabeli, który jest podobny do kolumnyAUTO_INCREMENTw MySQL lubIDENTITY w kolumnie SQL Server.

kolumna identity jest bardzo przydatna dla kolumny klucza głównego zastępczego., Po wstawieniu nowego wiersza do kolumny tożsamość Oracle automatycznie generuje i wstawia do kolumny wartość sekwencyjną.

aby zdefiniować kolumnę tożsamości, należy użyć klauzuli tożsamości, jak pokazano poniżej:

Po Pierwsze, słowo kluczowe GENERATED jest obowiązkowe.

Po drugie, możesz określić opcję generowania wartości tożsamości:

  • GENERATED ALWAYS: Oracle zawsze generuje wartość dla kolumny tożsamości. Próba Wstawienia wartości do kolumny identity spowoduje błąd.,
  • GENERATED BY DEFAULT: Oracle generuje wartość kolumny identity, jeśli nie podasz wartości. Jeśli podasz wartość, Oracle wstawi tę wartość do kolumny tożsamość. W przypadku tej opcji Oracle wyświetli błąd, jeśli wstawisz wartość NULL do kolumny tożsamość.
  • GENERATED BY DEFAULT ON NULL: Oracle generuje wartość kolumny identity, jeśli podasz wartość NULL lub w ogóle jej nie ma.

Po trzecie, możesz mieć wiele opcji dla kolumny tożsamość.,

  • START WITH initial_value kontroluje wartość początkową używaną dla kolumny identity. Domyślną wartością początkową jest 1.
  • INCREMENT BY internval_value określa odstęp pomiędzy wygenerowanymi wartościami. Domyślnie wartością interwału jest 1.
  • CACHE definiuje liczbę wartości, które Oracle powinien wygenerować wcześniej, aby poprawić wydajność. Ta opcja jest używana dla kolumny, która ma dużą liczbę wstawek.

przykłady kolumn Oracle identity

weźmy kilka przykładów użycia kolumn Oracle identity.,

A) zawsze wygenerowany przykład

następująca instrukcja tworzy tabelę o nazwie identity_demo która składa się z kolumny tożsamości:

następująca instrukcja wstawia nowy wiersz do tabeli identity_demo tabela:

iv id ponieważ nie podaliśmy wartości dla kolumnyid, Oracle automatycznie wygenerowało wartość sekwencyjną zaczynającą się od 1.,

poniższe polecenie próbuje wstawić wartość do id kolumna tożsamości:

Oracle wydało błąd:

ponieważ kolumna id została zdefiniowana jako GENERATED ALWAYS, nie mogła zaakceptować żadnej podanej wartości.,

B) GENERATED BY DEFAULT example

Let’s change the id column to GENERATED BY DEFAULT:

The following statement inserts a new row into the identity_demo table:

It worked as expected.,

następująca instrukcja wstawia nowy wiersz do tabeli identity_demo z podaną wartością dla kolumny id:

w tym przykładzie firma Oracle użyła podanej wartości i wstawiła ją do tabeli.,Po pierwsze, odtwarza tabelę identity_demo, której kolumna id jest zdefiniowana jako kolumna tożsamości z wartością początkową zaczynającą się od 100:

Po Drugie, Wstaw wiersz do identity_demo tabela:

Po trzecie, zapytanie danych z identity_demo tabela:

jak widać, początkowa wartość kolumny id wynosi 100, jak określono w klauzuli tożsamości.,

E) przyrost przez przykład opcji

najpierw zmień kolumnę id w identity_demotabeli, która zawiera obie opcje START WITHI INCREMENT BY.

Po Drugie, Wstaw dwa wiersze do identity_demo tabela:

Po Trzecie, zapytaj dane z tabeli, aby zweryfikować wstawki:

jak widać, pierwszy wiersz ma wartość ID 10. Drugi wiersz ma wartość id 20., To jest to, co zdefiniowaliśmy dla kolumny id, która powinna zaczynać się od 10 i zwiększać o 10 dla nowego wiersza.

Oracle identity column restrictions

kolumny identity podlegają następującym ograniczeniom:

  • każda tabela ma jedną i tylko jedną kolumnę identity.
  • typ danych kolumny identity musi być liczbowym typem danych. typ danych zdefiniowany przez użytkownika nie może być używany z klauzulą tożsamości.
  • kolumna tożsamości nie jest dziedziczona przez instrukcjęCREATE TABLE AS SELECT.,
  • kolumna identity nie może mieć innego ograniczenia DEFAULT.
  • algorytm szyfrowania dla zaszyfrowanych kolumn tożsamości można wywnioskować, dlatego powinieneś użyć silnego algorytmu szyfrowania.
  • ograniczenie wbudowane kolumny identity nie może być sprzeczne z ograniczeniemNOT NULL INOT DEFERRABLE określonym w klauzuli identity.

w tym samouczku nauczyłeś się korzystać z kolumny Oracle identity, która umożliwia łatwe definiowanie automatycznie generowanej kolumny numerycznej dla tabeli.,

  • czy ten tutorial był pomocny?
  • YesNo

Articles

Dodaj komentarz

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