Re: Datensatz an vorbestimmter Stelle einfuegen.
Nicolas Barbier <[email protected]> Mon, 3 Feb 2014 15:48:19 +0100
| Newsgroups | gmane.comp.db.postgresql.german |
|---|---|
| Message-ID | <CAP-rdTZOPDu+rq6o2SkAsPKDjSjbdVWxdtOcG7FfLQyaf22Xmg@mail.gmail.com> |
Am 3. Februar 2014 15:03 schrieb Guenther Boelter <[email protected]>: > Gibt es unter PostgreSQL die Moeglichkeit einen Datensatz an einer > bestimmten Stelle in die Datenbank (Tabelle) einzufuegen, also z. B. als > 10. Datensatz wobei evtl. vorhandene Datensaetze dann entsprechend um 1 > nach hinten verschoben werden? > > Sinn und Zweck ist es, die Daten dann spaeter ohne weiteren Aufwand in > eben genau in der Reihenfolge auch wieder auszugeben. Es geht hier bei > der Ausgabe immer nur um wenige Datensaetze. SQL-Datenbanken haben kein impliziertes Konzept der Reihenfolge der Zeilen einer Tabelle. Wenn man die Zeilen in einer bestimmen Reihenfolge zurückbekommen will, soll man das immer mit einer ORDER BY-Klausel erzwingen. Diese ORDER BY-Klausel kann z. B. eine „Index“-Spalte benutzen, die die Reihenfolge bestimmt. Eine Zeile in der Mitte einfügen, macht man dann z. B. indem man die „späteren“ Zeile verschiebt (also die Index-Werte eins erhöht) und die neue Zeile „dazwischensteckt“ (also mit dem richtigen Index-Wert, der nach der Verschiebung nicht mehr benutzt wird). Grüße aus Belgien, Nicolas -- A. Because it breaks the logical sequence of discussion. Q. Why is top posting bad? -- Sent via pgsql-de-allgemein mailing list ([email protected]) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-de-allgemein