Gibt es in SQL ein DELETE mit LIMIT?

Antwort vom

In Standard-SQL gibt es kein direktes `LIMIT`-Statement für `DELETE`-Anweisungen. Das bedeutet, du kannst nicht einfach schreiben: ```sql DELETE FROM tabelle LIMIT 10; ``` Allerdings unterstützen einige Datenbanksysteme eine solche Funktionalität: **MySQL** MySQL erlaubt das Löschen mit Limit: ```sql DELETE FROM tabelle ORDER BY id LIMIT 10; ``` [MySQL DELETE-Dokumentation](https://dev.mysql.com/doc/refman/8.0/en/delete.html) **PostgreSQL** PostgreSQL unterstützt `LIMIT` bei `DELETE` nicht direkt. Du kannst aber einen Workaround mit einer Unterabfrage nutzen: ```sql DELETE FROM tabelle WHERE id IN ( SELECT id FROM tabelle ORDER BY id LIMIT 10 ); ``` [PostgreSQL DELETE-Dokumentation](https://www.postgresql.org/docs/current/sql-delete.html) **SQL Server** Hier gibt es das Schlüsselwort `TOP`: ```sql DELETE TOP (10) FROM tabelle; ``` [SQL Server DELETE-Dokumentation](https://learn.microsoft.com/de-de/sql/t-sql/statements/delete-transact-sql) **Fazit:** Ob du ein `DELETE` mit `LIMIT` nutzen kannst, hängt vom verwendeten Datenbanksystem ab. Im Standard-SQL ist es nicht vorgesehen, aber viele Systeme bieten eigene Lösungen.

Kategorie: Technologie Tags: SQL DELETE LIMIT