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
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 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.
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; |
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
Kommentieren Sie diese Seite in DocCommentXchange. Senden Sie uns Feedback über diese Seite via E-Mail. |
Copyright © 2009, iAnywhere Solutions, Inc. - SQL Anywhere 11.0.1 |