Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SQL Anywhere 11.0.1 (Deutsch) » SQL Anywhere Server - SQL-Benutzerhandbuch » Daten abfragen und ändern » Daten hinzufügen, ändern und löschen

 

Daten mit DELETE löschen

Einfache DELETE-Anweisungen haben folgende Form:

DELETE [ FROM ] Tabellenname WHERE Spaltenname  = Ausdruck

Sie können auch eine komplexere Form verwenden:

DELETEFROM] Tabellenname 
FROM Tabellenliste 
WHERE Suchbedingung
Die WHERE-Klausel

Verwenden Sie die WHERE-Klausel, um anzugeben, welche Zeilen entfernt werden sollen. Wenn keine WHERE-Klausel angegeben wird, entfernt die DELETE-Anweisung alle Zeilen aus der Tabelle.

Die FROM-Klausel

Die FROM-Klausel an der zweiten Position einer DELETE-Anweisung ist eine besondere Funktion, mit deren Hilfe Sie Daten aus Tabellen entnehmen und entsprechende Daten aus der erstgenannten Tabelle entfernen können. Die Zeilen, die Sie in der FROM-Klausel angeben, setzen die Bedingungen für den Löschvorgang fest. Weitere Hinweise finden Sie unter DELETE-Anweisung.

Beispiel

In diesem Beispiel wird die Beispieldatenbank für SQL Anywhere benutzt. Um die Anweisungen in diesem Beispiel auszuführen, müssen Sie die Option "wait_for_commit" auf "On" setzen. Die folgende Anweisung führt diese Aufgabe nur für die laufende Verbindung durch:

SET TEMPORARY OPTION wait_for_commit = 'On';

Damit können Zeilen gelöscht werden, auch wenn sie Primärschlüssel enthalten, auf die ein Fremdschlüssel Bezug nimmt. Ein COMMIT ist erst zulässig, wenn der dazugehörige Fremdschlüssel ebenfalls gelöscht wurde.

Die folgende Ansicht zeigt Produkte und den Wert der verkauften Produkte an:

CREATE VIEW ProductPopularity as
SELECT  Products.ID,
   SUM( Products.UnitPrice * SalesOrderItems.Quantity ) 
   AS "Value Sold"
FROM  Products JOIN SalesOrderItems
ON Products.ID = SalesOrderItems.ProductID
GROUP BY Products.ID;

Mit dieser Ansicht können Sie die Produkte aus der Tabelle "Products" löschen, die weniger als 20.000 USD Umsatz gebracht haben.

DELETE
FROM Products
FROM Products NATURAL JOIN ProductPopularity
WHERE "Value Sold" < 20000;

Machen Sie diese Änderungen in der Datenbank rückgängig, indem Sie eine ROLLBACK-Anweisung eingeben:

ROLLBACK;
Tipp

Sie können auch Zeilen aus Datenbanktabellen der Interactive SQL-Ergebnismenge löschen. Weitere Hinweise finden Sie unter Ergebnismengen in Interactive SQL bearbeiten.


Alle Zeilen aus einer Tabelle löschen