Common Set-Syntax:
INSERT
INTO
table-name
|
Extended Set-Syntax:
INSERT
INTO
table-name
|
( |
This Dokumentcovers the following topics:
Eine Erläuterung der in dem Syntax-Diagramm verwendeten Symbole entnehmen Sie dem Abschnitt Syntax-Symbole.
Gehört zur Funktionsgruppe: Datenbankzugriffe und Datenbankänderungen
Siehe auch INSERT - SQL im Teil Natural for Db2 in der Datenbankmanagementsystem-Schnittstellen-Dokumentation:
Das SQL-INSERT
-Statement dient dazu, einer Tabelle eine
oder mehrere neue Zeilen hinzuzufügen.
Syntax-Element | Beschreibung |
---|---|
INTO
table-name
|
INTO-Klausel:
In der Siehe weitere Informationen zu
|
column-list
|
Spaltenliste:
Syntax: column-name... Als Bei Angabe einer
Wenn Sie bei
|
include-columns |
Include Columns-Klausel:
Weitere Informationen siehe include-columns. |
VALUES-clause |
VALUES-Klausel:
Mit der Siehe VALUES-Klausel weiter unten. |
OVERRIDING USER
VALUE
|
OVERRIDING USER
VALUE-Klausel:
Diese Klausel gehört zm SQL Extended Set. Diese Klausel bewirkt, dass der Wert ignoriert wird, der
in der |
Mit der VALUES
-Klausel fügen Sie eine einzelne
Zeile in die Tabelle ein. Der VALUES
-Klausel kann entweder ein
Stern (*) oder eine Spaltenliste
(column-list
) vorangestellt werden, und
sie hat dementsprechend eine der folgenden Formen:
VALUES
(VIEW
view-name)
|
Wenn Sie Stern-Notation benutzen, müssen Sie in der
VALUES
-Klausel eine View (Datenbanksicht) angeben. Mit den
Feldwerten der View wird dann eine neue Zeile in die Tabelle eingefügt, wobei
die Feldnamen der View als Spaltennamen der Zeile verwendet werden.
[(column-list)] [OVERRIDING
USER VALUE ] VALUE-LIST |
Wenn Sie bei column-list
eine Spaltenliste angeben und in der VALUES
-Klausel eine View
(Datenbanksicht) referenzieren, muss die Anzahl der Spalten in der Spaltenliste
der Anzahl der Felder in der View innerhalb der VALUE-LIST
entsprechen.
Wenn Sie keine Spaltenliste angeben, werden die in der View angegebenen Werte entsprechend der impliziten Liste aller Spalten in der Reihenfolge, in der sie in der Tabelle stehen, eingefügt.
Common Set-Syntax:
VALUES |
[FOR-n-ROWS-clause] |
Extended Set-Syntax:
VALUES |
[FOR-n-ROWS-clause] | |||||||||||||
[WITH_CTE
common-table-expression,...]
select-expression |
WITH |
[QUERYNO
integer]
|
Syntax-Element-Beschreibung:
Syntax-Element | Beschreibung | |
---|---|---|
VIEW
view-name |
View-Name:
Mit den Feldwerten dieser View (Datenbanksicht) wird eine neue Zeile in die angegebene Tabelle eingefügt, wobei die Feldnamen der View als Spaltennamen der Zeile benutzt werden. |
|
insert-item-list |
INSERT Single
Row-Klausel:
In der
Wenn keine
Die in der
Informationen zu
Wenn der Wert Beispiel für INSERT Single Row: ... INSERT INTO SQL-PERSONNEL (NAME,AGE) VALUES ('ADKINSON',35) ... |
|
FOR-n-ROWS-clause |
FOR n
Rows-Klausel:
Optionale Klausel, siehe FOR-n-ROWS-Klausel weiter unten. |
|
WITH_CTE
common-table-expression |
WITH_CTE-Klausel:
Diese Klausel gehört zum SQL Extended Set. Diese optionale Klausel ermöglicht die Definition einer
Ergebnistabelle, die in einer Weitere Informationen siehe
WITH_CTE
common-table-expression beim
|
|
select-expression
|
INSERT Multiple
Rows-Klausel:
Diese Klausel gehört zum SQL Extended Set. Mit einem
Weitere Informationen siehe Select-Ausdrücke. Beispiel für Insert Multiple Rows: ... INSERT INTO SQL-RETIREE (NAME,AGE,SEX) SELECT LASTNAME, AGE, SEX FROM SQL-EMPLOYEES WHERE AGE > 60 ... Anmerkung: |
|
WITH
RR/RS/CS
|
WITH Isolation
Level-Klausel:
Diese Klausel gehört zum SQL Extended Set. Diese Klausel ermöglicht die explizite Angabe des zum Auffinden der einzufügenden Zeilen benutzten Isolationsstufe. |
|
CS |
Cursor Stability | |
RR |
Repeatable Read | |
RS |
Read Stability | |
QUERYNO_integer
|
QUERYNO-Klausel:
Diese Klausel gehört zum SQL Extended Set. Diese Klausel gibt explizit die bei der
|
FOR |
[:]_host-variable |
ROWS |
[atomic-clause] |
Diese Klausel setzt sich aus den folgenden Subklauseln zusammen:
FOR |
[:]_host-variable |
ROWS |
Die Angabe dieser Klausel ist optional. Sie sollte nur angegeben werden, wenn
die Compiler-Option
DB2ARRY
angegeben wird und
mehrere Zeilen aus Arrays eingefügt werden sollen, die in der
insert-item-list
der VALUES-Klausel
angegeben worden sind.
Wenn sie angegeben wird, legt die Option [:]
hostvariable/integer
die Anzahl der Zeilen
fest, die in die Db2-Tabelle eingefügt werden sollen, und zwar von den Arrays,
die in der insert-item-list
der
VALUES
-Klausel ab der ersten Ausprägung angegeben wurden.
Diese Klausel soll die Verarbeitungszeit der Programme verbessern, mittels derer Zeilen aus Natural-Arrays in einer Schleife eingefügt werden. Anhand dieser Klausel können die in den Arrays enthaltenen Zeilen von einem SQL-Statement eingefügt werden.
Siehe Beispiel weiter unten.
Siehe auch den Teil Natural for Db2 in der Datenbankmanagementsystem-Schnittstellen-Dokumentation.
Diese Klausel gibt an, ob die Einfügung mehrerer Zeilen von Db2 als
ATOMIC
-Operation behandelt werden soll oder nicht.
Sie sollte nur angegeben werden, wenn
die Compiler-Option
DB2ARRY
angegeben wird und
mehrere Zeilen aus Arrays eingefügt werden sollen, die in der
insert-item-list
der VALUES-Klausel
angegeben worden sind.
Syntax-Element-Beschreibung:
Die in solchen Fällen zurückgegebenen sqlcodes entnehmen sie der Db2 SQL REFERENCE.
DEFINE DATA LOCAL 01 NAME (A20/1:10) INIT <'ZILLER1','ZILLER2','ZILLER3','ZILLER4' ,'ZILLER5','ZILLER6','ZILLER7','ZILLER8' ,'ZILLER9','ZILLERA'> 01 ADDRESS (A100/1:10) INIT <'ANGEL STREET 1','ANGEL STREET 2' ,'ANGEL STREET 3','ANGEL STREET 4' ,'ANGEL STREET 5','ANGEL STREET 6' ,'ANGEL STREET 7','ANGEL STREET 8' ,'ANGEL STREET 9','ANGEL STREET 10'> 01 DATENATD (D/1:10) INIT <D'1954-03-27',D'1954-03-27',D'1954-03-27' ,D'1954-03-27',D'1954-03-27',D'1954-03-27' ,D'1954-03-27',D'1954-03-27',D'1954-03-27' ,D'1954-03-27'> 01 SALARY (P4.2/1:10) INIT <1000,2000,3000,4000,5000 ,6000,7000,8000,9000,9999> 01 L§ADDRESS (I2/1:10) INIT <14,14,14,14,14,14,14,14,14,15> 01 N§ADDRESS (I2/1:10) INIT <00,00,00,00,00,00,00,00,00,00> 01 ROWS (I4) 01 INDEX (I4) 01 V1 VIEW OF NAT-DEMO_ID 02 NAME 02 ADDRESS (EM=X(20)) 02 DATEOFBIRTH 02 SALARY 01 ROWCOUNT (I4) END-DEFINE OPTIONS DB2ARRY=ON /* <-- ENABLE DB2 ARRAY ROWCOUNT := 10 INSERT INTO NAT-DEMO_ID (NAME,ADDRESS,DATEOFBIRTH,SALARY) VALUES (:NAME(*), /* <-- ARRAY :ADDRESS(*) /* <-- ARRAY INDICATOR :N§ADDRESS(*) /* <-- ARRAY LINDICATOR :L§ADDRESS(*), /* <-- ARRAY DB2 VCHAR :DATENATD(1:10), /* <-- ARRAY NATURAL DATES :SALARY(01:10) /* <-- ARRAY NATURAL PACKED ) FOR :ROWCOUNT ROWS SELECT * INTO VIEW V1 FROM NAT-DEMO_ID WHERE NAME > 'Z' DISPLAY V1 /* <-- VERIFY INSERT END-SELECT END