Announcement

Collapse
No announcement yet.

AutoInc nachträglich einbauen

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • AutoInc nachträglich einbauen

    Hallo zusammen.
    Gibt es einen einfachen Weg oder ein nettes kleines Tool, welches ein <b>nachträglich</b> eingefügtes AutoInc-Feld automatisch mit der jeweiligen Satznummer füllt?

    Peter

  • #2
    Hallo Peter,

    der Interbase-Server stellt keine AutoInc-Felder zur Verfügung. Zur Abhilfe greif man bei Interbase auf die sogenannten Generatoren zurück. Such einfach mal im Forum nach Generator.

    Tschüß

    Torste

    Comment


    • #3
      Danke, aber wie das AutoInc bei InterBase funktioniert ist schon klar. Feld, Generator und Trigger sind ja ohne Schwierigkeit hinzuzufügen. Die Frage ist jetzt, wie fülle ich das Feld, wenn schon Datensätze vorhanden sind?!

      Gruß

      Pete

      Comment


      • #4
        Habe mir selbst ein entsprechendes Programm geschrieben.

        Pete

        Comment


        • #5
          Hallo Peter,
          Währe nett zu erfahren was du da gemacht hast.
          Grüße Gust

          Comment


          • #6
            Hallo Gustav,

            der in meinen Augen einfachste Weg ist ein <b>before-update-Trigger</b> mit dem das Feld hochgezählt wird.

            z.B.<pre>
            create trigger testtable_setid for testtable
            before update
            as
            begin
            if (new.id is null) then new.id = gen_id(testtable_generator, 1);
            end
            </pre>

            Danach ist nur noch ein Update notwendig z.B. <pre>
            Update testtable
            set
            id = id
            </pre>

            Falls bereits einige Datensätze eine gültige ID haben kann man im Trigger auch noch die entsprechenden Ausschlußkriterien definieren.

            Nach der ganzen Aktion wird der Trigger wieder gelöscht.

            Tschüß

            Torste

            Comment


            • #7
              Hi,

              ganz simpel. Habe einfach die Tabelle komplett exportiert und nachdem alle DDL-Statements abgearbeitet wurden, die Daten wieder importiert.

              Das Lösung von Torsten ist natürlich ungleich eleganter.

              Pete

              Comment


              • #8
                Ich denke ihr wollt den Generator auf einen Wert setzen? oder verstehe ich da was falsch. Das folgende SQL sollte es tun
                <pre>
                set myGen to 1000;
                </pre&gt

                Comment


                • #9
                  Nein, wie das funktioniert, ist schon klar. Es ging darum, eine bereits mit etlichen Daten gefüllte Tabelle <b>nachträglich</b> mit einem AutoInc-Feld aufzurüsten.

                  Das Problem ist aber Gott sei Dank schon seit geraumer Zeit erledigt.
                  &#10

                  Comment

                  Working...
                  X