[SQLite] delte funktioniert nicht mit limit

Jennesta

Erfahrenes Mitglied
Hallo Leute,
ich muss für eine Datenbank ein paar Grundfunktionen bereitstellen. Als erstes wollte ich angehen doppelte Werte zu löschen. Versucht habe ich es folgendermaßen:

Code:
sprintf(pSQL, "delete from tab where Zahl = 1.2 limit 3 offset 1");

Hier wird mir jedesmal ein SQL-Error an den Kopf geworfen wie folgt:
"SQL error: near "limit": syntax error"

Ich meine irgendwo gelesen zu haben, das delete ähnlich wie select funktioniert und habe direkt mal ausprobiert:

Code:
sprintf(pSQL, "select * from tab where Zahl=1.2 limit 3 offset 1");

Hier klappt alles wie ich will, ich habe 3 mal diesen Wert in der Tabelle vorhanden und er wird 2 mal ausgegeben.
Habe das nach diesem Schaubild versucht aufzubauen
Kann mir vielleicht einer auf die Sprünge helfen, wieso das also bei delete nicht funktioniert, oder ggf eine bessere Variante liefern?

Grüße Jennesta
 
Bist du dir sicher dass das LIMIT-Statement vom DELETE-Command überhaupt von SQLite unterstützt wird ?
Ich meine : nur mal rein logisch : was hat denn ein LIMIT in einem DELETE zu suchen wenn du über WHERE genau angibst was alles zu löschen ist ?

Laut offizieller SQLite-Doc muss SQLite mit der Compile-Option "SQLITE_ENABLE_UPDATE_DELETE_LIMIT" compiled werden damit du überhaupt LIMIT im DELETE-Command nutzen KANNST.
Du solltest das einfach mal prüfen.
Aus der weiteren Doc geht auch hevor das diese Option standardmäßig NICHT verwendet wird und in der Regel nur durch self-build vom Source verfügbar wird.

Quelle : http://www.sqlite.org/lang_delete.html
 
Danke für die schnelle Antwort. Scheinbar habe ich den Part, wo das mit der compile-Option steht überlesen. Da es in der Grafik so selbstverständlich drinnen stand, hatte ich es doch als gegeben angenommen.
Zu deinem Einwand - sicher ist nicht gerade die intelligenteste Weise mit dem löschen, jedoch war mir das am schnellsten eingefallen und ich habe in meiner Tabelle auch keine ids vergeben um solche Fälle einfach zu prüfen.
Aber gut, ich schaue mal ob ichs irgendwie gebacken bekomme.
 

Neue Beiträge

Zurück