![]() |
Datenbank: MySQL • Version: 5.7 • Zugriff über: Delphi (API)
MySQL Zeilenindex
Hallo,
habe hier eine Tabelle: Id Text 0 abc 1 lmn 2 xyz Bisher habe ich eine Zeile ausgelesen oder gelöscht mit: SELECT * FROM Tabelle1 WHERE Id = 0 //hier also die Zeile mit Id=0 und auch Index=0 Nun habe ich die Tabelle so verändert: Id Text 1 lmn 2 xyz Mit obiger Query findet er die Zeile jetzt natürlich nicht mehr. Wie kann ich im Query angeben, das ich die Zeile mit dem Index=0 (1 lmn, also erste Zeile der Tabelle) auslesen oder löschen will? Danke und beste Grüße |
AW: MySQL Zeilenindex
definiere was für dich die erste Zeile in dieser Tabelle definiert?
Ich vermute den Eintrag mit dem kleinsten Wert für die Spalte ID also
Code:
damit ist der Löschbefehl
select min(id) from tabelle1
Code:
delete from tabelle1 where id = (select min(id) from tabelle1
|
AW: MySQL Zeilenindex
Zitat:
Ich baue die Id so: 'CREATE TABLE '+TableName+'(id INT NOT NULL AUTO_INCREMENT, '... Somit wird die id immer aufsteigend sein (da ich sie nie selber setze). Also ist select min(id) from tabelle1 die Lösung. Danke und beste Grüße |
AW: MySQL Zeilenindex
Zitat:
Gruß K-H |
AW: MySQL Zeilenindex
Also kann auf die Tabellenzeilen nicht (etwa wie in einer StringList) über den Index zugreifen?
|
AW: MySQL Zeilenindex
Nein, nur über den Inhalt.
Wenn die ID eindeutig ist, was bei Auto_Increment ja der Fall ist, wäre die kleinste ID wie oben beschrieben zu finden. Aber:
SQL-Code:
liefert eine andere Sortierung und damit muss der erste Satz im Abfrageergebnis noch lange nicht der mit der kleinsten ID sein.
select id, text from tabelle1 order by text
|
AW: MySQL Zeilenindex
Pedantisch:
Der Begriff "Index" hat hier in diesem Zusammenhang im Datenbankbereich nichts verloren. Der Datenbank-Index ist ein Hilfskonstrukt, das den Datenzugriff beschleunigen soll. Das hat nichts mit konkreten Werten zu tun. Die Existenz eines Spalten-Index (als Datenbankbegriff) hat keinerlei Einfluss auf Funktion und fachliches / logisches Verhalten, Werte oder sonstwas. Es geht dabei nur um Performance. Hier ist (wenn überhaupt) von einem Schlüssel (Key) die Rede, falls definiert, ansonsten kann man lediglich von einem kleinsten Wert ausgehen bzw. sprechen. (Den kann man meinetwegen noch als logischen Schlüsselwert bezeichnen). "Kleinster Wert" ist wiederum eindeutig von der Begrifflichkeit, unabhängig von der Sortierung. "Erster Wert" ist nicht(!) eindeutig, da er von der Sortierung abhängig ist, also quasi situationsabhängig. Das Löschen des "ersten Wertes" macht also nur unter strengen Bedingungen Sinn, z.B. wenn über eine Tabelle ein FIFO oder ähnliches realisiert werden soll. Ansonsten ist es jedenfalls angesagt, mit fachlich korrekt eingesetzten, konkreten Schlüsseln (Schlüsselwerten)zu arbeiten. Auch das Löschen des kleinsten Wertes, was fachlich erwünscht sein kann, ist bspw. in einer Mehrbenutzerumgebung kritisch zu betrachten. |
AW: MySQL Zeilenindex
Zitat:
Wenn genügend Benutzer da sind, löscht jeder den kleinsten Wert, und schwupp ist nichts mehr da? Gruß K-H |
AW: MySQL Zeilenindex
Ja, z.b. ist nichts mehr da, im schlimmsten Fall. Was aber schon eine massive Fehlfunktionen wäre. (Die wahrscheinlich auch schnell auffällt)
Die "Kleinheit" ist ja eine Frage der Perspektive. Wenn mehrere Nutzer den gleichen Arbeitsschritt durchführen und das Timing möglichst ungünstig, wer löscht dann welchen Wert? Kann un-erheblich sein, kann aber auch zu Fehlern führen. |
AW: MySQL Zeilenindex
Da Du einen solchen Blödsinn mit einrechnest scheint es um Datenbanken schlimmer zu stehen als ich gedacht habe.
:wall: :wall: :wall: Gruß K-H |
AW: MySQL Zeilenindex
Eine Folge, dass Mengenlehre nicht mehr Teil (Grundschul-)Bildung ist.
|
AW: MySQL Zeilenindex
Zitat:
:) Leider ist es oft solcher Blödsinn, der lange unentdeckt bleibt, irgendwann stinkt, dann wird die große Fehlersuche durchgeführt und ja s.o. (meine Ausführungen) dann die Ursache sind. Allein der Aspekt Ein- oder Mehrbenutzer System ist da sehr reichhaltig. Und er kommt voll aus der Praxis. Fast jedes Programm hat mal klein angefangen und (im Einmannbetrieb) gut funktioniert. @Mengenlehre: Damals in der Grundschule hatte ich das noch. Es war mir glaube ich nicht sehr verständlich, kann mich kaum noch erinnern. Aber vielleicht hab ich ja doch da meine beruflichen Wurzeln. ;) |
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:44 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz