Dieser Artikel beschreibt anhand eines Beispiels, wie MySQL zwei Tabellen vergleicht, um festzustellen, ob sie unterschiedliche Daten enthalten. Teilen Sie uns die Einzelheiten zu Ihrer Information mit: Bei der Datenmigration müssen wir häufig zwei Tabellen vergleichen, um Datensätze in einer Tabelle zu identifizieren, für die es in der anderen Tabelle keine entsprechenden Datensätze gibt. Beispielsweise haben wir eine neue Datenbank mit einem anderen Schema als die alte. Unsere Aufgabe besteht darin, alle Daten von der alten Datenbank in die neue Datenbank zu migrieren und zu überprüfen, ob die Daten korrekt migriert wurden. Um die Daten zu überprüfen, müssen wir zwei Tabellen vergleichen, eine in der neuen Datenbank und eine in der alten Datenbank, und die Datensätze identifizieren, die nicht übereinstimmen. Angenommen, es gibt zwei Tabellen: t1 und t2. Verwenden Sie die folgenden Schritte, um die beiden Tabellen zu vergleichen und die nicht übereinstimmenden Datensätze zu identifizieren. Die übliche Idee besteht darin, zuerst t1 zu überprüfen, dann den Datenergebnissatz zu durchlaufen und die anderen Tabellen nacheinander abzufragen. Wenn die Daten gefunden werden können, sind sie korrekt. Wenn nicht, fehlen die Daten. Wenn das stimmt, dann sind Sie wirklich zu jung und zu einfach. Dieses Mal stellen wir eine einfachere Lösung zum Datenvergleich vor. Dabei werden zwei Tabellen mithilfe von „Union All“ verknüpft und die Daten anschließend mithilfe einer temporären Tabelle oder einer abgeleiteten Tabelle verglichen. Schauen wir uns das SQL-Beispiel für „Union All“ an: WÄHLEN Sie t1.pk, t1.c1 VON t1 UNION ALLE WÄHLEN Sie t2.pk, t2.c1 VON t2 Danach erstellen wir zwei Tabellen und fügen einige Daten ein. Danach können wir es testen. Schauen wir uns zuerst die Erstellung der Tabelle an: TABELLE ERSTELLEN t1( id int auto_increment Primärschlüssel, Titel varchar(255) ); TABELLE ERSTELLEN t2( id int auto_increment Primärschlüssel, Titel varchar(255), Hinweis varchar(255) ); Fügen Sie anschließend Daten in t1 ein: INSERT INTO t1(Titel) WERTE('Zeile 1'),('Zeile 2'),('Zeile 3'); Fügen wir Daten in t2 ein: INSERT INTO t2(Titel) WERTE('Zeile 1'),('Zeile 2'),('Zeile 3'); OK, verwenden wir abgeleitete Tabellen, um Daten zu vergleichen: Wählen Sie ID, Titel AUS ( Wählen Sie ID, Titel aus t1 UNION ALLE Wählen Sie ID, Titel aus t2 ) tbl GRUPPE NACH ID, Titel HAVING count(*) = 1 BESTELLEN NACH ID; Natürlich gibt es nach dem Ausführen keine Rückgabedaten, da zwischen ihnen kein Unterschied besteht. Keine Sorge, fügen wir eine weitere Datenzeile in die Tabelle t2 ein: INSERT INTO t2(Titel,Notiz) VALUES('neue Zeile 4','neu'); Danach vergleichen wir die Werte der Titelspalte in den beiden Tabellen erneut. Da es sich bei der neuen Zeile um eine nicht übereinstimmende Zeile handelt, wird sie zurückgegeben. Schauen wir uns die Ergebnisse an: mysql> SELECT id,titel AUS ( Wählen Sie ID, Titel aus t1 UNION ALLE Wählen Sie ID, Titel aus t2 ) tbl GRUPPE NACH ID, Titel HAVING count(*) = 1 BESTELLEN NACH ID; +----+-----------+ | ID | Titel | +----+-----------+ | 4 | neue Zeile 4 | +----+-----------+ 1 Reihe im Set Okay, das sind alle Tipps für dieses Mal. Leser, die an weiteren MySQL-bezogenen Inhalten interessiert sind, können sich die folgenden Themen auf dieser Site ansehen: „MySQL-Abfragekenntnisse“, „Zusammenfassung der allgemeinen MySQL-Funktionen“, „MySQL-Protokolloperationskenntnisse“, „Zusammenfassung der MySQL-Transaktionsoperationskenntnisse“, „MySQL-gespeicherte Prozedurkenntnisse“ und „Zusammenfassung der MySQL-Datenbanksperrenkenntnisse“. Ich hoffe, dass dieser Artikel für jedermann beim Entwurf einer MySQL-Datenbank hilfreich ist. Das könnte Sie auch interessieren:
|
<<: VScode Remote SSH-Remote-Bearbeitung und -Debugging von Code
>>: JavaScript zum Erreichen aller oder umgekehrter Auswahlfunktionen
In diesem Artikel erfahren Sie, wie Sie MySQL 8.0...
Benutzer virtueller Maschinen richten normalerwei...
Obwohl Sie denken, dass es sich möglicherweise um...
In diesem Artikelbeispiel wird der spezifische Co...
In diesem Artikelbeispiel wird der spezifische Co...
Eine Anwendung einer CSS-Animation mit demselben ...
Virtualisierung 1. Umwelt Centos7.3 Deaktivieren ...
In MySQL können Sie die Funktionen IF(), IFNULL()...
Plätzchen Dies ist eine Standardmethode zum Speic...
Inhaltsverzeichnis 1. Verwenden Sie SVG 2. Verwen...
Vorwort: Die MySQL-Datenbank bietet eine breite P...
In diesem Artikel wird der spezifische Code von J...
Kommen wir heute gleich zur Sache und sprechen üb...
Öffnen Sie den gerade entpackten Ordner C:\web\my...
1. Um die MySQL-Datenbank herunterzuladen, besuch...