ralf: Datensatz an bestimmter Position einfügen

Hi,

ich habe eine Tabelle:

ID   Name
1    A
2    B
3    C

Gibt es einen SQL Befehl mit dem ich einen Datensatz zwischen ID 1 und 2 einsetzen kann, damit die Tabelle dann so aussieht:

ID   Name
1    A
4    D
2    B
3    C

Danke und Gruß

Ralf

  1. Hi,

    Gibt es einen SQL Befehl mit dem ich einen Datensatz zwischen ID 1 und 2 einsetzen kann,

    in einer Datenbank-Tabelle existiert keine Position. Die Datensätze sind per se unsortiert - bis Du ihnen im SELECT-Statement eine Reihenfolge gibst.

    Cheatah

    --
    X-Will-Answer-Email: No
    X-Please-Search-Archive-First: Absolutely Yes
    1. Hi,

      schon klar. Ich dachte an sowas wie AFTER. Mit diesem Befehl kann ich ja eine neue Spalte nach einer anderen Spalte einfügen.

      Ich wollte wissen ob es sowas für INSERT auch gibt, z.B.

      INSERT .... AFTER id='3'

      Gruß

      Ralf

      1. hi

        Ich wollte wissen ob es sowas für INSERT auch gibt, z.B.

        afaik: nein

        würde auch keinen sinn machen, da du die daten erst bei der ausgabe ordnest...vorher liegen die, wie cheatah schon schrieb unsortiert vor.

        sobald du dir die datensätze allerdings anzeigen läßt werden sie nach irgendeinem schlüssel sortiert...und wenn es nur die id in aufsteigender form ist (standard z.B. bei ACCESS-Tabellen)

        so long
        ole
        (8-)>

        --
        Die Summe aller menschlichen Intelligenz ist eine Konstante.
        Das Problem ist das Bevölkerungswachtum...
        sh:( fo:) ch:| rl:° br:& n4:° ie:% mo:} va:| de:] zu:| fl:( ss:) ls: js:|
        If you can't beat 'em...eat 'em !
        1. hi,

          ok, dann brauch ich ne andere Lösung :)

          Sinn des Programmes ist eine Katalog verwaltung. Wenn ich nun zwischen Seite 2 und 3 eine Seite einfügen möchte muss die neue Seite die nummer 3 haben und alle danachfolgenden um eins erhöht werden.

          Ich hab keine Idee wie ich so was machen könnte

          Gruß

          Ralf

          1. Hi,

            Sinn des Programmes ist eine Katalog verwaltung. Wenn ich nun zwischen Seite 2 und 3 eine Seite einfügen möchte muss die neue Seite die nummer 3 haben und alle danachfolgenden um eins erhöht werden.

            Wie schon vorher gesagt, ID allein hilft da nicht viel weiter. Du koenntest eine zusaetzlich Spalte [SeitenNr - integer] in die DB einbauen, die dann zum Sortieren verwendet wird

            Gruss,
            Melanie

          2. hi

            ok, dann brauch ich ne andere Lösung :)

            sieht so aus

            Sinn des Programmes ist eine Katalog verwaltung. Wenn ich nun zwischen Seite 2 und 3 eine Seite einfügen möchte muss die neue Seite die nummer 3 haben und alle danachfolgenden um eins erhöht werden.

            das funktioniert, allerdings solltest du dich vieleicht nicht umbedingt nach der ID richten, da diese normalerweise als primärschlüssel fungiert und somit einen festen wert hat der einmalig ist und selbst wenn er gelöscht wird dieses für den rest der lebensdauer der tabelle bleibt.

            Ich hab keine Idee wie ich so was machen könnte

            1. die seite raussuchen nach der du etwas einfügen willst
            2. alle datensätze deren werte in der spalte "seitennummer" größer als die seite nach der du etwas einfügen willst +1 setzen
            3. deine neue seite einfügen

            mit welcher programmiersprache du das erledigst bleibt sir überlassen :)
            vieleicht gibt es ja auch einen einfacheren weg.

            so long
            ole
            (8-)>

            --
            Die Summe aller menschlichen Intelligenz ist eine Konstante.
            Das Problem ist das Bevölkerungswachtum...
            sh:( fo:) ch:| rl:° br:& n4:° ie:% mo:} va:| de:] zu:| fl:( ss:) ls: js:|
            If you can't beat 'em...eat 'em !