OVERRIDING
Die Klausel OVERRIDING
steuert das Verhalten einer Identitätsspalte nur für diese Anweisung.
OVERRIDING SYSTEM VALUE
-
Der vom Benutzer bereitgestellte Wert für die Identitätsspalte wird verwendet, und es wird kein Wert mit der Identität generiert.Mit anderen Worten, für diese Einfügung verhält sich die Identität so, als ob sie
GENERATED BY DEFAULT
wäre.Diese Option kann nur für Tabellen mit einerGENERATED ALWAYS AS IDENTITY
-Spalte angegeben werden.Dies kann beim Zusammenführen oder Importieren von Daten aus einer anderen Quelle nützlich sein.Nach einer solchen Einfügung kann es erforderlich sein, den nächsten Wert der Identitätssequenz mit
ALTER TABLE
zu ändern, um zu verhindern, dass nachfolgende Einfügungen kollidierende Identitätswerte erzeugen. OVERRIDING USER VALUE
-
Der vom Benutzer bereitgestellte Wert für die Identitätsspalte wird ignoriert und der Spaltenwert wird mithilfe der Identität generiert.Mit anderen Worten, für diese Einfügung verhält sich die Identität so, als ob sie
ALWAYS GENERATED
wäre, während die Identitätsspalte in der Spaltenliste zugelassen wird.Diese Option kann nur für Tabellen mit einer SpalteGENERATED BY DEFAULT AS IDENTITY
angegeben werden.Es ist normalerweise einfacher, die Identitätsspalte wegzulassen, um den gleichen Effekt zu erzielen.
OVERRIDING
-- Für GENERATED ALWAYS AS IDENTITY
-- wird immer der Wert 11 verwendet
insert into objects_always (id, name)
OVERRIDING SYSTEM VALUE values (11, 'Laptop');
-- Für GENERATED BY DEFAULT AS IDENTITY
-- wird der Wert 12 nicht verwendet
insert into objects_default (id, name)
OVERRIDING USER VALUE values (12, 'Laptop');