PostgreSQL: Characterlänge nachträglich ändern

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • PostgreSQL: Characterlänge nachträglich ändern

    Hi,

    ich habe in meiner Tabelle ein Datenfeld mit varchar(10) angegeben und möchte dies nachträglich ändern->varchar(50)!
    Die Tabelle enthält schon einige Einträge und ich hab echt kein Bock alles neu anzulegen.
    Kann mir jemand helfen?

  • #2
    - http://www.postgresql.org/docs/manuals/
    - Version auswählen
    - nach ALTER TABLE suchen
    Ich denke, also bin ich. - Einige sind trotzdem...

    Kommentar


    • #3
      Danke, aber da hab ich schon nachgeschaut.
      Hab leider nix gefunden!
      Version: 7.3

      Kommentar


      • #4
        http://www.postgresql.org/docs/7.3/s...ltertable.html

        Wenn du nicht direkt den Datentyp der Spalte ändern kannst, dann musst du mit ALTER TABLE eine neue Spalte mit dem geünschten Datentyp anlegen, mit einem UPDATE die Daten aus der alten in die neue Spalte kopieren, die alte Spalte mit ALTER TABLE löschen und dann - wieder mit ALTER TABLE - die neue Spalte umbenennen
        Ich denke, also bin ich. - Einige sind trotzdem...

        Kommentar


        • #5
          Das Problem an der ganzen Sache ist nur, dass die neue Spalte ganz hinten dran gehangen wird!
          Gibts da ne Möglichkeit die Reihenfolge der Spalten zu ändern?

          Kommentar


          • #6
            Original geschrieben von vindiesel
            Das Problem an der ganzen Sache ist nur, dass die neue Spalte ganz hinten dran gehangen wird!
            Warum?

            Wie greifst du denn bitte auf die Daten zu, wenn du dadurch ein Problem bekommst?
            Ich denke, also bin ich. - Einige sind trotzdem...

            Kommentar


            • #7
              Die PHP-Scripte hat einer unserer Praktikanten geschrieben und das sieht dann zum Teil so aus:

              $query = "SELECT * FROM users WHERE username='$username';";
              $result = pg_Exec($db, $query);
              $row = pg_Fetch_Row($result);

              $vorname_user = $row[3];
              $nachname_user = $row[2];
              $anrede_user = $row[16];


              Hab jetzt die letzten 5 Spalten duplizieren müssen, damit die Reihenfolge der Tabelle unverändert bleibt.
              War zwar ein bissel Arbeit, aber mir ist nix besseres eingefallen...

              Kommentar


              • #8
                An deiner Stelle hätte ich spätestens an dieser Stell die Doku zu pg_fetch_row gelesen und pg_fetch_array gefunden...
                Ich denke, also bin ich. - Einige sind trotzdem...

                Kommentar

                Lädt...
                X