Chris (C): SQL nächster Datensatz

Beitrag lesen

Hi,

Ehm, sogar Datensätze können ganz grundsätzlich völlig verstreut liegen, es ist nichtmal gegeben, dass die überhaupt auf der selben Festplatte liegen, das hängt sehr vom DBMS ab und von Optionen mit denen man das DBMS füttert, sie liegen auch nicht zwingend in der zeitlichen Reihenfolge auf der Platte. Ich kenne allerdings keine einzige Datenbank, die einen Datensatz aufsplittet.

Das ist alles Definitionssache. Man könnte behaupten, dass z.B. MySQL-Tabellen, die variante Datentypen (enum, Text, Blob, ...) enthalten, nicht vollständig normalisiert sind und das die Datanbank daher nachholt. Aber Text und Blobs werden tatsächlich nicht in einem geschlossenen Record-Bereich gespeichert. Sie werden irgendwo auf der Platte abgelegt und nur referenziert.

Und selbst wenn ich davon ausgegangen wäre, dass der Poster die Frage im Zusammenhang mit ORDER BY gedacht hat, hätte die Frage zuwenig Informationen geboten um zu helfen. Limit ist hochgradig DBMS spezifisch, bei MySQL gehts mit LIMIT n,m, bei PostGreSQL gehts ganz ähnlich aber zusätzlich braucht man noch das Schlüsselwort Offset, bei Oracle gehts nochmal anders und bei MSSQL nochmal.

Und MSSQL kennt auch nur einen Parameter, was das Ganze sehr unhandlich macht.

Man sollte vielleicht bemerken, dass ein Datenmodellierer selber etwas dafür tun muss, dass Datensätze nach bestimmten Kriterien sortierbar und abarbeitbar sind. Wenn man kein Feld mit Zeitkriterium einbaut, kann man später auch nicht mehr feststellen, in welcher Reihenfolge die Sätze bearbeiet wurden. Da gab es hier mal eine Diskussion, in der darauf hingewiesen wurde, dass noch nicht einmal ein Autoincrement-Primary-Key Gewähr dafür ist, die Erfassungsreiehenfolge wieder gerstellen zu können, da das DBMS ggf. frei gewordene Schlüssel wieder verwendet (was ich mir allerdings verbitten möchte *gg*)

Grüße

Chris (C)