This Dokument behandelt folgende Themen:
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:
DELETE - SQL im Teil Natural for DB2.
DELETE - SQL im Teil Natural for DB2.
DELETE - SQL im Teil Natural for DB2.
Das SQL-DELETE
-Statement dient dazu, entweder Zeilen aus
einer Tabelle zu löschen, ohne einen Cursor zu verwenden (Searched
DELETE
), oder Zeilen aus einer Tabelle zu löschen, auf die der
Cursor positioniert ist (Positioned DELETE
).
Zwei unterschiedliche Strukturen sind möglich:
Searched DELETE
ist ein eigenständiges Statement, das
unabhängig von einem SELECT
-Statement verwendet werden
kann. Mit einem einzigen Statement können sie Null, eine, mehrere oder alle
Zeilen einer Tabelle löschen. Welche Zeilen gelöscht werden, bestimmen Sie mit
einer Suchbedingung (search-condition
),
die auf die Tabelle angewandt wird. Optional ist es möglich, dem Tabellennamen
einen correlation-name
zuzuweisen.
Anmerkung:
Die Anzahl der Zeilen, die mit einem Searched DELETE
tatsächlich gelöscht worden sind, kann mit der Systemvariablen
*ROWCOUNT
ermittelt werden; see
Systemvariablen-Dokumentation.
Common Set-Syntax:
DELETE
FROM table-name
[correlation-name]
[WHERE
search-condition]
|
Extended Set-Syntax:
DELETE
FROM table-name
[period-clause]
[correlation-name]
|
|||||||
[include-columns
[SET
assignment-clause]]
|
|||||||
[WHERE
search-condition]
|
|||||||
WITH
|
[SKIP LOCKED DATA ] [QUERYNO
integer]
|
Eine Erläuterung der in dem Syntax-Diagramm verwendeten Symbole entnehmen Sie dem Abschnitt Syntax-Symbole.
Syntax-Element-Beschreibung:
Syntax-Element | Beschreibung | |
---|---|---|
FROM
table-name
|
FROM-Klausel:
In dieser Klausel wird die Tabelle angegeben, aus der die Zeilen gelöscht werden sollen. |
|
period-clause |
Period-Klausel:
Gibt an, dass für das Ziel der Aktulaisierungsoperation eine Period-Klausel gilt. Weitere Informationen siehe Period-Klausel im Abschnitt Grundlegende Syntaxbestandteile. |
|
correlation-name
|
Korrelationsname:
Optional. Dem Tabellennamen kann ein Korrelationsname zugeordnet werden. |
|
include-columns |
Include Columns-Klausel:
Optional. Gibt einen Satz Spalten an, die zusammen mit den
Weitere Informationen siehe include-columns. |
|
SET
assingment-clause |
SET Assignment-Klausel:
Leitet die Zuordnung von Werten zu den inkludierten Spalten der
Include Columns-Klausel ein. Siehe Assignment-Klausel beim SQL
|
|
WHERE
search-condition
|
WHERE-Klausel:
Diese Klausel dient zur Angabe der Selektionskriterien für die zu löschenden Zeilen. Wenn keine WHERE-Klausel angegeben wird, wird die gesamte Tabelle gelöscht. |
|
WITH
|
WITH Isolation Level-Klausel:
Diese Klausel gehört zum SQL Extended Set. Diese Klausel ermöglicht die explizite Angabe der beim Suchen der zu löschenden Zeile benutzten Isolationsstufe. |
|
CS |
Cursor Stability | |
RR |
Repeatable Read | |
RS |
Read Stability | |
SKIP LOCKED
DATA |
SKIP LOCKED DATA-Klausel:
Diese Klausel gibt an, dass Zeilen übersprungen werden, wenn auf der Zeile inkompatible Sperren durch andere Transaktionen vorhanden sind. |
|
QUERYNO
integer
|
QUERYNO-Klausel:
Diese Klausel gehört zum SQL Extended Set. Diese Klausel gibt die in |
Ein Positioned DELETE
bezieht sich immer auf einen Cursor
innerhalb einer Datenbankschleife. Es muss daher dieselbe Tabelle referenzieren
wie das entsprechende SELECT
-Statement, sonst wird eine
Fehlermeldung zurückgegeben. Ein Positioned DELETE
kann nicht mit
einer Selektion ohne Curosor verwendet werden.
In seiner Funktion entspricht das Positioned
DELETE
-Statement dem Natural-DML-Statement
DELETE
.
Common Set-Syntax:
DELETE FROM table-name
WHERE CURRENT OF CURSOR [(r)]
|
Extended Set-Syntax:
DELETE FROM table-name
WHERE CURRENT OF CURSOR [(r)]
|
FOR
ROW |
OF
ROWSET |
Eine Erläuterung der in dem Syntax-Diagramm verwendeten Symbole entnehmen Sie dem Abschnitt Syntax-Symbole.
Syntax-Element-Beschreibung:
Syntax-Element | Beschreibung |
---|---|
FROM
table-name WHERE CURRENT OF
CURSOR |
FROM-Klausel:
Diese Klausel gibt die Tabelle an, aus der die Zeilen gelöscht werden sollen. |
(r) |
Statement-Referenz:
Die Notation |
FOR ROW ... OF
ROWSET
|
FOR ROW … OF ROWSET-Klausel:
Diese Klausel gehört zum SQL Extended Set. Die optionale |