Erfahren Sie, wie Sie Datensätze in Ihrer SQL-Datenbank mühelos aktualisieren und verwalten können, indem Sie eine temporäre Tabelle zur Synchronisierung von Daten zwischen zwei Tabellen verwenden. Diese Anleitung erklärt das Einfügen neuer Datensätze, das Aktualisieren bestehender sowie das Entfernen veralteter Einträge.
---
Dieses Video basiert auf der Frage https://stackoverflow.com/q/62214729/ gestellt von dem Nutzer 'ichihaifu' ( https://stackoverflow.com/u/5751489/ ) sowie auf der Antwort https://stackoverflow.com/a/62215797/ bereitgestellt von dem Nutzer 'GMB' ( https://stackoverflow.com/u/10676716/ ) auf der Website 'Stack Overflow'. Vielen Dank an diese großartigen Nutzer und die Stackexchange-Community für ihre Beiträge.
Besuchen Sie diese Links, um den Originalinhalt und weitere Details zu sehen, z. B. alternative Lösungen, aktuelle Entwicklungen zum Thema, Kommentare, Versionsverlauf usw. Der ursprüngliche Titel der Frage lautete beispielsweise: Update table1 from table2 (Insert new, update changed only, remove missing)
Außerdem steht der Inhalt (außer Musik) unter der Lizenz CC BY-SA https://meta.stackexchange.com/help/l...
Der ursprüngliche Fragenbeitrag steht unter der Lizenz 'CC BY-SA 4.0' ( https://creativecommons.org/licenses/... ), und der ursprüngliche Antwortbeitrag steht unter der Lizenz 'CC BY-SA 4.0' ( https://creativecommons.org/licenses/... ).
Falls Ihnen irgendetwas auffällt oder Unstimmigkeiten bestehen, schreiben Sie mir bitte an vlogize [AT] gmail [DOT] com.
---
Aktualisierung einer SQL-Tabelle mit Daten aus einer anderen Tabelle: Eine Schritt-für-Schritt-Anleitung
Bei der Arbeit mit Datenbanken ist eine häufige Aufgabe sicherzustellen, dass Ihre Daten aktuelle Informationen widerspiegeln. Dies beinhaltet häufig das Synchronisieren von Tabellen – veraltete Einträge entfernen, neue hinzufügen und bestehende Datensätze aktualisieren. In diesem Beitrag zeigen wir, wie Sie eine bestehende Tabelle (table1) basierend auf einer temporären Importtabelle (table2) effektiv mit SQL/MariaDB aktualisieren. Wir besprechen, wie fehlende appids entfernt, neue hinzugefügt und Namen entsprechend aktualisiert werden.
Das Problem
Sie haben zwei Tabellen:
Aktuelle Tabelle: table1 – Diese enthält die Hauptdaten.
Temporäre Tabelle: table2 – Hier werden die Daten aus einer CSV-Datei importiert.
Ihre Hauptziele sind:
Zeilen aus table1 entfernen, bei denen die entsprechende appid in table2 nicht vorhanden ist.
Neue Zeilen aus table2 hinzufügen, die in table1 noch nicht vorhanden sind.
Namen in table1 aktualisieren, falls sie sich in table2 geändert haben.
Warum nicht einfach ein einziger Befehl?
Im Gegensatz zu einigen anderen Datenbanksystemen unterstützt MySQL/MariaDB keinen vollständig ausgestatteten MERGE-Befehl, der all diese Operationen in einem Schritt ermöglicht. Stattdessen müssen wir die Aufgabe in zwei Hauptoperationen aufteilen, um das Ziel effizient zu erreichen.
Die Lösung: Schritt für Schritt
Schritt 1: Fehlende appids entfernen
Zuerst stellen wir sicher, dass alle appids, die in table1 vorhanden sind, aber in table2 fehlen, gelöscht werden. So bleibt Ihre table1 sauber und aktuell. Der SQL-Befehl dazu lautet:
[[Siehe Video, um diesen Text oder Codeausschnitt anzuzeigen]]
Schritt 2: Neue Datensätze einfügen oder bestehende aktualisieren
Im nächsten Schritt fügen wir neue appids aus table2 in table1 ein oder aktualisieren die Namen, falls die appid bereits existiert. Dies erreichen wir mit der Syntax INSERT ... ON DUPLICATE KEY UPDATE:
[[Siehe Video, um diesen Text oder Codeausschnitt anzuzeigen]]
Wichtige Hinweise:
Primärschlüssel erforderlich: Damit die ON DUPLICATE KEY-Klausel korrekt funktioniert, muss appid als Primärschlüssel in table1 definiert sein. So kann die Datenbank Duplikate effektiv erkennen.
Optimierung der temporären Tabelle: Um die Leistung zu verbessern, sollte bei der Erstellung der temporären Tabelle (table2) appid ebenfalls als Primärschlüssel definiert werden.
Fazit
Mit diesen zwei Schritten können Sie Ihre Datenbanktabellen effizient synchronisieren. Dieser Prozess aktualisiert nicht nur bestehende Einträge, sondern sorgt auch dafür, dass Ihre Daten akkurat bleiben und veraltete Einträge entfernt werden.
Die Implementierung dieser Methode ermöglicht eine effektive Datenverwaltung und sorgt dafür, dass Ihre SQL-Abfragen reibungsloser laufen, was die Leistung Ihrer Datenbankoperationen verbessert.
Zusammenfassung
Die in diesem Blogbeitrag erläuterte Methode erlaubt es Ihnen:
Veraltete Einträge zu entfernen basierend auf nicht vorhandenen appids.
Neue Einträge in table1 einzufügen.
Bestehende Einträge intelligent zu aktualisieren, ohne unnötige Befehle auszuführen.
Nun sind Ihre SQL-Kenntnisse geschärft und Sie sind bereit, die Datensynchronisation mit Zuversicht anzugehen!
Информация по комментариям в разработке