Vorwort
Ich bin in der vorherigen Übung auf ein Problem gestoßen, das dem von pt-osc ähnelt. Wie können wir sicherstellen, dass alles narrensicher ist?
Analyse
Manche Leute denken vielleicht, dass es nicht einfach ist, die Tabellennamen einfach umzubenennen.
Wir möchten jedoch gleichzeitig den Tabellennamenaustausch durchführen. Wenn die Tabellennamen nacheinander ausgetauscht werden, kann es sein, dass das Schreiben einiger Daten fehlschlägt.
Lösung
Tatsächlich ist es nicht schwierig, die Methode aus dem MySQL-Handbuch zu finden, das heißt: Zwei Tabellen gleichzeitig sperren, kein Schreiben zulassen und dann die Tabellennamen austauschen .
Normalerweise sperren wir nur einen Tisch. Was sollten wir also tun, um zwei Tische gleichzeitig zu sperren? Sie können die folgende Methode verwenden:
LOCK TABLES t1 WRITE, t2 WRITE; ALTER TABLE t1 RENAME TO t3; ALTER TABLE t2 RENAME TO t1; ALTER TABLE t3 RENAME TO t2; UNLOCK TABLES;
Sehen Sie, es ist eigentlich ganz einfach, Schreibsperren auf Tabellenebene gleichzeitig zu beiden Tabellen hinzuzufügen und sie dann mit der ALTER-Syntax umzubenennen.
Oben geht es darum, wie man die beiden Tabellennamen in MySQL austauscht. Ich hoffe, dass dieser Artikel für alle bei der Verwendung von MySQL hilfreich ist.