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