Identitätsspalten (Autoinkrement)
Identitätsspalten werden mit dem GENERATED {ALWAYS | BY DEFAULT} AS IDENTITY-Klausel.Die Identitätsspalte ist eine Spalte, die einem internen Sequenzgenerator zugeordnet ist.Sein Wert wird jedes Mal automatisch gesetzt, wenn er nicht in der INSERT-Anweisung angegeben wird oder wenn der Spaltenwert als DEFAULT angegeben wird.
Regeln
-
Eine Identitätsspalte kann nicht in eine reguläre Spalte geändert werden.Erlaubte Typen sind
SMALLINT,INTEGER,BIGINT,NUMERIC(p[,0])undDECIMAL(p[,0])mit p <= 18.-
Der Typ "INT128" und numerische Typen mit einer Genauigkeit von mehr als 18 werden nicht unterstützt.
-
-
Eine Identitätsspalte darf keinen
DEFAULT- oderCOMPUTED-Wert haben. -
Eine Identitätsspalte kann zu einer regulären Spalte geändert werden.
-
Eine reguläre Spalte kann nicht in eine Identitätsspalte geändert werden.
-
Identitätsspalten sind implizit
NOT NULL(non-nullable) und können nicht nullable gemacht werden. -
Eindeutigkeit wird nicht automatisch erzwungen.Eine
UNIQUE- oderPRIMARY KEY-Beschränkung ist erforderlich, um die Eindeutigkeit zu garantieren. -
Die Verwendung anderer Methoden zur Generierung von Schlüsselwerten für Identitätsspalten, z. B. durch Trigger-Generator-Code oder indem Benutzern erlaubt wird, sie zu ändern oder hinzuzufügen, wird davon abgeraten, unerwartete Schlüsselverletzungen zu vermeiden.
-
Der Wert
INCREMENTdarf nicht null (0) sein.