tutorials.de Buch-Aktion 05/2012
Like Tree1Danke
  • 1 Beitrag von SE
ERLEDIGT
JA
ANTWORTEN
2
ZUGRIFFE
188
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Avatar von Jennesta
    Jennesta Jennesta ist offline Mitglied Gold
    Registriert seit
    Sep 2007
    Ort
    Aachen
    Beiträge
    215
    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 :
    1
    
    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 :
    1
    
    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
     
    Was soll daran kompliziert sein? Es muss doch nur ein Rad bewegt werden, man kann aufsteigen, es kommt die Matschhütte und durch den Regenbogen gelangst du zum hungrigen Affen, der Affenschwanz wird gezogen und bums kommst du zum Paradispark.

  2. #2
    SE Tutorials.de Gastzugang
    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
    Jennesta bedankt sich. 

  3. #3
    Avatar von Jennesta
    Jennesta Jennesta ist offline Mitglied Gold
    Registriert seit
    Sep 2007
    Ort
    Aachen
    Beiträge
    215
    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.
     
    Was soll daran kompliziert sein? Es muss doch nur ein Rad bewegt werden, man kann aufsteigen, es kommt die Matschhütte und durch den Regenbogen gelangst du zum hungrigen Affen, der Affenschwanz wird gezogen und bums kommst du zum Paradispark.

Ähnliche Themen

  1. [SQLite] Anfänger frage bzw C# und SQLite
    Von Lensen im Forum Relationale Datenbanksysteme
    Antworten: 4
    Letzter Beitrag: 14.12.11, 12:50
  2. DESC LIMIT funktioniert irgendwie nicht.
    Von ciberjoerg im Forum PHP
    Antworten: 3
    Letzter Beitrag: 24.02.10, 00:44
  3. Antworten: 2
    Letzter Beitrag: 22.01.06, 00:55
  4. ACCESS LIMIT nicht möglich?
    Von Deletemaster im Forum Relationale Datenbanksysteme
    Antworten: 3
    Letzter Beitrag: 01.05.05, 22:43
  5. SQL LIMIT funktioniert nicht
    Von robb im Forum .NET Archiv
    Antworten: 1
    Letzter Beitrag: 03.12.04, 00:48