Dieser Abschnitt 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 DELETE - SQL im Teil Natural for Db2 in der Datenbankmanagementsystem-Schnittstellen-Dokumentation:
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]
|
|||||||
[FETCH
FIRST
row-limit]
|
|||||||
|
|
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 Aktualisierungsoperation 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. |
|
FETCH FIRST |
FETCH FIRST-Klausel:
Begrenzt die Auswirkungen des Entspricht der beim |
|
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 |