Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Würde die folgende Primärschlüsseländerung mit `pt-online-schema-change` funktionieren?

Ja, Sie können einen PRIMARY KEY mit pt-online-schema-change ändern. So funktioniert pt-online-schema-change:

  1. Eine kurze Metadatensperre auf origA erwerben
  2. Trigger auf origA hinzufügen
  3. Neue Tabelle genau wie origA, newA erstellen
  4. Wenden Sie die ALTER-Anweisung auf newA an.
  5. Kopieren Sie die Zeilen von origA nach newA.
  6. Wenn Sie fertig sind, benennen Sie origA in oldA um, benennen Sie newA in origA um.
  7. Altes A löschen

Zu keinem Zeitpunkt fehlt in einer der Tabellen ein PRIMARY KEY. Es ist nicht erforderlich, einen UNIQUE-Schlüssel hinzuzufügen. Alles, was Sie ausführen müssen, ist Nr. 2 in Ihrem Satz, und das reicht aus.