Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
CREATE TABLE
CREATE TABLE definiert eine neue Tabelle.
CREATE TABLE [ IF NOT EXISTS ] table_name ( [ { column_name data_type [ column_constraint [ ... ] ] | table_constraint | LIKE source_table [ like_option ... ] } [, ... ] ] ) where column_constraint is: [ CONSTRAINT constraint_name ] { NOT NULL | NULL | CHECK ( expression )| DEFAULT default_expr | GENERATED ALWAYS AS ( generation_expr ) STORED | GENERATED { ALWAYS | BY DEFAULT } AS IDENTITY ( sequence_options ) | UNIQUE [ NULLS [ NOT ] DISTINCT ] index_parameters | PRIMARY KEY index_parameters | and table_constraint is: [ CONSTRAINT constraint_name ] { CHECK ( expression ) | UNIQUE [ NULLS [ NOT ] DISTINCT ] ( column_name [, ... ] ) index_parameters | PRIMARY KEY ( column_name [, ... ] ) index_parameters | and like_option is: { INCLUDING | EXCLUDING } { COMMENTS | CONSTRAINTS | DEFAULTS | GENERATED | IDENTITY | INDEXES | STATISTICS | ALL } index_parameters in UNIQUE, and PRIMARY KEY constraints are: [ INCLUDE ( column_name [, ... ] ) ]
Identitätsspalten
Anmerkung
Bei der Verwendung von Identitätsspalten sollte der Cache-Wert sorgfältig abgewogen werden. Weitere Informationen finden Sie in der Erläuterung „Wichtig“ auf der CREATE SEQUENCE Seite.
Hinweise zur optimalen Verwendung von Identitätsspalten auf der Grundlage von Workload-Mustern finden Sie unterArbeiten mit Sequenzen und Identitätsspalten.
Die GENERATED { ALWAYS | BY DEFAULT } AS IDENTITY ( Klausel erstellt die Spalte als Identitätsspalte. Ihr wird eine implizite Sequenz angehängt, und in neu eingefügten Zeilen enthält die Spalte automatisch Werte aus der ihr zugewiesenen Sequenz. Eine solche Spalte ist implizit. sequence_options )NOT NULL
Die Klauseln ALWAYS und BY DEFAULT bestimmen, wie explizit vom Benutzer angegebene Werte in INSERT Befehlen und Befehlen behandelt werden. UPDATE
Wenn in einem INSERT Befehl ausgewählt ALWAYS ist, wird ein benutzerdefinierter Wert nur akzeptiert, wenn in der INSERT Anweisung Folgendes angegeben ist. OVERRIDING SYSTEM
VALUE Wenn ausgewählt BY DEFAULT ist, hat der benutzerdefinierte Wert Vorrang.
Wenn in einem UPDATE Befehl diese Option ausgewählt ALWAYS ist, wird jede Aktualisierung der Spalte auf einen anderen Wert als diesen DEFAULT abgelehnt. Wenn diese Option ausgewählt BY
DEFAULT ist, kann die Spalte normal aktualisiert werden. (Es gibt keine OVERRIDING Klausel für den UPDATE Befehl.)
Die sequence_options Klausel kann verwendet werden, um die Parameter der Sequenz zu überschreiben. Zu den verfügbaren Optionen gehören die fürCREATE SEQUENCE, plusSEQUENCE NAME
. Ohne nameSEQUENCE NAME diese Option wählt das System einen unbenutzten Namen für die Sequenz.