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
Löschen Sie das Symbol 1 vor ul li Wert löschen 1 ...
Betriebssystem: Windows 10_x64 Python-Version: 3....
Einführung in Nginx Nginx ist ein leistungsstarke...
1 Gespeicherte Prozedur 1.1 Was ist eine gespeich...
Phrasenelemente wie <em></em> können d...
In diesem Artikel wird hauptsächlich erläutert, w...
Ich habe kürzlich an einer Popup-Anzeige gearbeite...
In diesem Artikelbeispiel wird der spezifische Co...
Inhaltsverzeichnis 1 Ausführung und Planung 1.1 V...
1) Einführung in den Cache-Mechanismus Um die Lei...
Zusammenfassung: HBase verfügt über zahlreiche Be...
Dockerfile ist eine Textdatei, die Anweisungen en...
MySQL-Datenbank installieren a) Laden Sie das MyS...
Daten-URI Data URI ist ein durch RFC 2397 definie...
Da der Router zu Hause die Bandbreite von 300 Mbi...