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 die folgenden Abschnitte in der Database Management System Interfaces-Dokumentation:
INSERT - SQL im Teil Natural for DB2.
INSERT - SQL im Teil Natural SQL Gateway.
INSERT - SQL im Teil Natural for SQL/DS.
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 einen View angeben. Mit den Feldwerten des Views
wird dann eine neue Zeile in die Tabelle eingefügt, wobei die Feldnamen des
Views 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 einen View
referenzieren, muss die Anzahl der Spalten in der Spaltenliste der Anzahl der
Felder im View innerhalb der VALUE
-LIST entsprechen.
Wenn Sie keine Spaltenliste angeben, werden die im 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 dieses Views wird eine neue Zeile in die angegebene Tabelle eingefügt, wobei die Feldnamen des Views als Spaltennamen der Zeile benutzt werden. |
|
insert-item-list |
INSERT Single Row-Klausel:
In der Wenn keine Die in der insert-item-list anzugebenden Werte können Konstanten,
Parameter, spezielle Register oder 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 Database Management System Interfaces-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