muenzchen: (MySQL) Spalte nachträglich als AUTO INCREMENT definieren?

Hallo!

Ich habe versucht mit phpmyadmin eine spalte nachträglich als  AUTO INCREMENT zu definieren, aber er meint dazu müsste sie auch der PRIMARY KEY sein. Die Option ist da aber nicht mehr vorhanden.

Wie kann ich die Spalte trotzdem nachträglich als AUTO INCREMENT definieren?

MfG, muenzchen

  1. Hallo

    Ich habe versucht mit phpmyadmin eine spalte nachträglich als  AUTO INCREMENT zu definieren, aber er meint dazu müsste sie auch der PRIMARY KEY sein. Die Option ist da aber nicht mehr vorhanden.

    Wie kann ich die Spalte trotzdem nachträglich als AUTO INCREMENT definieren?

    Ganz einfach:

    1. PRIMARY KEY der vorhandenen Spalte löschen, UNIQUE reicht dort ;-)
      2. Gewünschte Spalte auf den entsprechenden Typ setzen, inklusive
         PRIMARY KEY

    Und noch was: Mehr als ein AUTO_INCREMENT (beachte den Unterstrich)
      je Tabelle geht nicht. Macht auch keinen Sinn.

    Falls Du es brauchen solltest, dann überleg' Dir doch, wie Du das AUTO_INCREMENT-Verhalten programmtechnisch nachahmen kannst. _Das_ geht.

    Gruss,

    Vinzenz

    --
    Die FAQ </faq/> des Forums sind lesenswert und hilfreich.
    1. Ich weiß wie mans nachahmt, aber einfach AUTO INCREMENT ist besser.

      Ausserdem habe ich in der Tabelle noch kein AUTO INCREMENT, aber ich müsste die Spalte, die AUTO INCREMENT werden soll auch als PRIMARY KEY definieren. Aber in phpmyadmin gibts die Option beim nachträglichen Ändern nicht und ich weiß nicht wie ich eine Spalte nachträglich als PRIMARY KEY definiere. Das war meine Frage.

      1. Hallo Münzchen,      <- Anrede </faq/Q-05a>

        Ich weiß wie mans nachahmt, aber einfach AUTO INCREMENT ist besser.

        Ausserdem habe ich in der Tabelle noch kein AUTO INCREMENT, aber ich müsste die Spalte, die AUTO INCREMENT werden soll auch als PRIMARY KEY definieren. Aber in phpmyadmin gibts die Option beim nachträglichen Ändern nicht und ich weiß nicht wie ich eine Spalte nachträglich als PRIMARY KEY definiere. Das war meine Frage.

        Gruss,

        Verwende ALTER TABLE ...
        http://www.mysql.com/doc/en/ALTER_TABLE.html

        Ob Du AUTO_INCREMENT nachträglich einfügen kannst, hab' ich nicht nachgesehen. Aber auf jeden Fall kannst Du fogendes tun:

        1. einen Dump Deiner Tabelle machen (Struktur und Daten),
        2. Tabellendefinition entsprechend abändern,
        3. Tabelle löschen
        4. Tabelle mit neuer Definition erstellen.

        AUTO_INCREMENT ist schließlich deutlich intelligenter als der Autowert von MS Access.

        PS: Du bist so lange dabei, bitte beachte doch meine Hinweise.

        Gruß,

        Vinzenz            <- Das ist ein Gruß </faq/Q-05c>

        --
        Die FAQ </faq/> des Forums sind lesenswert und hilfreich.
        1. Hab jetzt rausgefunden wies geht.

          Sorry, dass ich nicht immer gruß und verabschiedung hinschreibe, das ist ja nicht immer nötig.

          MfG, muenzchen

          1. Hallo münzchen,

            Hab jetzt rausgefunden wies geht.

            Prima! Noch besser wäre es, wenn Du auch posten würdest, wie Du es gemacht hast.

            Falls mal jemand das gleiche Problem hat, kann er dann im Archiv eine funktionierende Lösung finden. So ist aber die Enttäuschung groß:

            Es geht, aber niemand sagt mir, wie... :-(

            Sorry, dass ich nicht immer gruß und verabschiedung hinschreibe, das ist ja nicht immer nötig.

            Nimm's mir nicht übel, aber: </faq/Q-05a>, </faq/Q-05c> :-)

            Bitte poste Deine Lösung.

            MfG, muenzchen <- Du kannst, wenn Du willst ;-)

            Gruss,

            Vinzenz

            --
            Die FAQ </faq/> des Forums sind lesenswert und hilfreich.
            1. Hallo

              Die Lösung habe ich dann doch in phpmyadmin gefunden.
              Wenn man sich die einzelnen Spalten einer Tabelle auflisten lässt, kann man dort Primary Key, Unique, usw. einstellen.

              So hats dann auch geklappt :)

              MfG, muenzchen