Hallo Leute, ich hätte zu folgendem Problem gerne eine Bestätigung, oder einen Tip: In einer SQLite-Datenbank benötige ich immer den Inhalt (Zähler) einer bestimmten Spalte der letzten Zeile beim Start einer Session. Programmiert wird in C#. So wie ich das in den Foren gelesen und scheinbar verstanden habe, muss man, nach dem Öffnen der Datenbank erst einmal mit "insert" eine Zeile einfügen, um dann mit "last_row_id" die letzte Zeile zu identifizieren (minus 1)- dann hätte ich den Wert (ausgelesen). Gibt es da vielleicht eine bessere Methode ?? Vielen Dank für Eure Anregungen ! Dietmar
Wie wär's damit:
1 | SELECT id FROM table ORDER BY id DESC LIMIT 1; |
Wenn id ein Index ist sollte es eigentlich kein Problem für SQLite sein das effizient umzusetzen. Aber: willst du wirklich nach der ID sortieren, oder zweckentfremdest du die id als Erstellungsdatum? Kann man schon machen, man sollte sich aber darüber im Klaren sein dass IDs von gelöschten Zeilen u.U. wiederverwendet werden können. Je nach Anwendung könnte ein Timestamp also sinnvoller (und mit Index auch nicht langsamer) sein.
Hallo Andreas, besten Dank erst einmal. Ich habe mich da wohl noch nicht ganz klar ausgedrückt. Nicht Sortieren steht im Vordergrund, sondern die Ermittlung des MaxWertes der betreffenden Spalte, der in der letzten Zeile stehen muss. Dieser Wert wird aufsteigend von einer anderen Applikation in die Datenbank hineingeschrieben (komplette Zeile mit Messwerten). Die Werte dürfen nie verändert werden. Diese Applikation kann aber beim Start nicht den letzten Wert ermitteln, so soll mein C#-Programm dies erledigen und den nächsten Wert übergeben. Hoffentlich ist das annähernd verständlich.
Ermittlung des Maximalwertes erreicht man doch durch Sortieren.
> Wie wär's damit: > SELECT id FROM table ORDER BY id DESC LIMIT 1; Das geht noch einfacher:
1 | SELECT MAX(id) FROM table; |
Dann braucht man allerdings noch eine zweite Abfrage um die eigentlichen Daten der Zeile zu bekommen.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.