Będziesz musiał utworzyć pole auto-inkrementacji z obiektem sekwencji (ten obiekt generuje sekwencję liczb).
Użyj następującego TWORZENIE SEKWENCJA składnia:
CREATE SEQUENCE seq_person
MINVALUE 1
START WITH 1
INCREMENT BY 1
CACHE 10
Powyższy kod tworzy obiekt o nazwie seq_person sekwencji, który rozpoczyna się 1 i spowodują przyrost o 1. Będzie także buforować maksymalnie 10 wartości dla wydajności. Opcja pamięci podręcznej określa, ile wartości sekwencji będzie przechowywanych w pamięci, aby uzyskać szybszy dostęp.
Aby wstawić nowy rekord w tabeli „Osoby”, będziemy musieli skorzystać z funkcji NEXTVAL (ta funkcja pobiera następną wartość z sekwencji seq_person):
INSERT INTO Persons (P_Id,FirstName,LastName)
VALUES (seq_person.nextval,'Lars','Monsen')
Instrukcja SQL powyżej byłby wstawić nowy rekord w tabeli "Osoby". Kolumnie "P_Id" zostanie przypisany następny numer z sekwencji seq_person. Kolumna "FirstName" zostanie ustawiona na "Lars", a kolumna "LastName" zostanie ustawiona na "Monsen".
Dzięki Ian. To tam zacząłem. Nie jestem pewien dlaczego, ale z jakiegokolwiek powodu część "GENERATED ALWAYS" tego zapytania nie jest rozpoznawana. Otrzymuję komunikat o błędzie brakującym prawym parens ... wskaźnik nie rozpoznaje słów kluczowych. – Matt
Jaką wersję DB2 używasz i na jakiej platformie? –
Brakuje przecinków ('','') po deklaracji sekwencji tożsamości, ale w przeciwnym razie działa na _my_ DB2 (nie mam włączonego rejestrowania, więc nie mogę zadeklarować klucza podstawowego w tym momencie). –