Datenbanken

Datenbanken

Posts 1-4 of 4
  • Stefan Frech
    Stefan Frech
    The company name is only visible to registered members.
    Migration von Usernamen zu UserID's
    Hallo

    Ich möchte eine Altlast aus meinen Jugendsünden loswerden und die Datenbank einer Webapplikation von Usernamen auf UserID's umstellen. Die aktuelle DB Struktur sieht so aus:

    mysql> desc user;
    +---------------------------+---------------+------+-----+--------------+-------+
    | Field | Type | Null | Key | Default | Extra |
    +---------------------------+---------------+------+-----+--------------+-------+
    | username | char(50) | | PRI | | |
    | password | char(50) | | | | |
    ...

    Die eigentliche Umstellung auf UserID's ist kein Problem. Das kann man ja so machen:

    ALTER TABLE user ADD COLUMN userid INT(11) AUTO_INCREMENT FIRST, ADD PRIMARY KEY (userid);

    Nun habe ich aber auch noch andere bestehende Tabellen, die natürlich zur Zeit noch keine UserID's sondern Usernamen enthalten. Diese zum Beispiel:

    mysql> desc bestellung;
    +-------------+---------------+------+-----+-------------------+----------------+
    | Field | Type | Null | Key | Default | Extra |
    +-------------+---------------+------+-----+-------------------+----------------+
    | user | char(50) | | | | |
    | title | varchar(70) | | MUL | | |

    Mit welchem MySQL Befehl kann ich nun sämtliche andere Tabellen mit bestehenden Daten umstellen?

    Besten Dank für Eure Hilfe.

    Gruzz Stefan
    This post was modified on 05 Apr 2008 at 08:58 am.
  • User photo
    Clemens Dudek
    The company name is only visible to registered members.
    Re: Migration von Usernamen zu UserID's
    Mit welchem MySQL Befehl kann ich nun sämtliche andere Tabellen mit bestehenden Daten umstellen?
    Einen einfachen Befehl wird es dafür nicht geben. Derartige Umstellungen erfordern einen entsprechenden Migrationsplan und beinhält, je nach Anforderungen, ein neues Datenmodell, in die der Altbestand übernommen wird. Es gäbe natürlich auch eine pragmatische Lösung: das bestehende username Feld auf userid umzubenennen, ein neues Feld Username hinzufügen und das alte Feld in Zukunft mit einer sequence oder einem anderen eindeutigen Kriterium befüllen. Ist vielleicht nicht die schönste Lösung, aber erlaubt dafür eine "sanfte" Migration.
  • Post visible to registered members
  • Stefan Frech
    Stefan Frech
    The company name is only visible to registered members.
    Re^2: Migration von Usernamen zu UserID's
    Guten Tag Norbert

    Vielen Dank für die wertvolle Hile. Ich werde es bei Gelegenheit ausprobieren und hier mitteilen, ob ich so weitergekommen bin. Allerdings habe ich nach dem ersten Ueberblick dieser Beschreibung bereits ein gutes Gefühl.

    Freundliche Grüsse, Stefan