From: | Nicolas Barbier <nicolas(dot)barbier(at)gmail(dot)com> |
---|---|
To: | Guenther Boelter <gboelter(at)gmail(dot)com> |
Cc: | PostgreSQL <pgsql-de-allgemein(at)postgresql(dot)org> |
Subject: | Re: Datensatz an vorbestimmter Stelle einfuegen. |
Date: | 2014-02-03 14:48:19 |
Message-ID: | CAP-rdTZOPDu+rq6o2SkAsPKDjSjbdVWxdtOcG7FfLQyaf22Xmg@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-de-allgemein |
Am 3. Februar 2014 15:03 schrieb Guenther Boelter <gboelter(at)gmail(dot)com>:
> 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?
From | Date | Subject | |
---|---|---|---|
Next Message | Gunnar "Nick" Bluth | 2014-02-03 18:59:22 | Re: Datensatz an vorbestimmter Stelle einfuegen. |
Previous Message | Michael Renner | 2014-02-03 14:33:37 | Re: Datensatz an vorbestimmter Stelle einfuegen - Nachfrage |