MySQL MariaDB

MySQL einfügen Doppelten Schlüssel ignorieren

MySQL einfügen Doppelten Schlüssel ignorieren
Es gibt oft widersprüchliche Daten in Tabellen oder Ergebnissätzen. Auch die Korrektur ist zeitaufwändig und häufig müssen wiederholte Aufzeichnungen vermieden werden. Es ist notwendig, doppelte Datensätze zu identifizieren und aus einer der beiden Tabellen zu löschen. In diesem Abschnitt erfahren Sie, wie Sie das Auftreten doppelter Daten in einer Tabelle vermeiden und aktuelle doppelte Datensätze entfernen können eliminate. In diesem Handbuch erfahren Sie, wie Sie die INSERT IGNORE-Klausel verwenden, um den Fehler zu vermeiden.

Syntax:

Hier ist die Syntax für die INSERT IGNORE-Abfrage.

>> INSERT IGNORE INTO Tabellenname (Spalte, Spalte2, Spalte3) WERTE (Werteliste), (Werteliste), (Werteliste);

IGNORE über Workbench EINFÜGEN:

Öffnen Sie Ihre MySQL Workbench 8.0 von Ihrem System und verbinden Sie es mit der Datenbankinstanz.

Im Befehlsbereich müssen Sie eine Tabelle „Employee“ mit vier Spalten erstellen, von denen eine als „UNIQUE“ angegeben werden muss. Versuchen Sie die folgende Abfrage im Navigator-Abfragebereich, um diese Tabelle zu erstellen. Wählen Sie die gesamte Abfrage aus und klicken Sie auf das Flash-Zeichen, um sie auszuführen.

>> CREATE TABLE Mitarbeiter (ID int PRIMARY KEY NOT NULL, Name varchar(50) NOT NULL, Alter Varchar(50), Gehalt varchar(50), UNIQUE (ID));

Beim Anlegen finden Sie die Tabelle „Mitarbeiter“ in der Liste unter der Option „Tabellen“ unter der Datenbank „Daten“.

In der Rasteransicht können Sie die Datensätze eingeben, ohne eine Abfrage einzugeben. Öffnen Sie also die Rasteransicht der Tabelle „Mitarbeiter“ und fügen Sie einige Datensätze hinzu, wie unten gezeigt. Wir haben alle eindeutigen Datensätze ohne Duplikate eingegeben. Klicken Sie auf die Schaltfläche "Übernehmen", um die Änderungen zu übernehmen.

Es öffnet sich ein neues Fenster mit den entsprechenden Abfragen zu den oben eingegebenen Datensätzen. Dieser Bildschirm kann als „Review“-Bildschirm bezeichnet werden. Wenn Sie etwas ändern möchten, können Sie dies hier tun. Klicken Sie andernfalls auf die Schaltfläche Übernehmen, um die Abfragen auszuführen.

Wie Sie sehen, wurde die Abfrage erfolgreich ausgeführt und die Datensätze werden in der Datenbank und deren Tabelle „Mitarbeiter“ gespeichert. Es hätte einen Fehler generiert, wenn wir in der Spalte "ID" einen doppelten Wert hinzugefügt hätten. Tippen Sie auf die Schaltfläche „Fertig stellen“.

Hier drehte sich alles um die Rasteransicht. Nun fügen wir Datensätze über den Abfragebereich ein. In der Zwischenzeit haben wir diesmal doppelte Datensätze eingefügt, um die Ausgabe zu überprüfen. Also haben wir die untenstehende "INSERT" -Abfrage ausprobiert, bei der wir zwei Listen mit Werten haben. Beide Wertelisten haben den gleichen Wert in der Spalte 'ID'. Wählen Sie die Abfrage aus und drücken Sie das Blinkzeichen, um die Abfrage auszuführen.

Die Abfrage funktioniert nicht richtig und generiert einen Fehler aufgrund der doppelten Werte im INSERT-Befehl, wie im Bild angezeigt.

Versuchen Sie nun die gleiche obige Abfrage mit der INSERT IGNORE-Klausel und führen Sie sie wie dargestellt aus.

Sie können sehen, dass im Ausgabebereich kein Fehler generiert wird, aber eine Warnung ausgegeben wird, dass der Befehl doppelte Werte enthält.

Aktualisieren Sie die Rasteransicht der Tabelle „Mitarbeiter“. Die Abfrage INSERT IGNORE hat halb funktioniert. Es fügte die erste Werteliste in die Tabelle ein, aber die zweite Werteliste wurde aufgrund des wiederholten Wertes „13“ ignoriert.

INSERT IGNORE über die Befehlszeilen-Shell:

Um dieses Konzept zu verstehen, öffnen wir die MySQL-Befehlszeilen-Client-Shell in Ihrem System. Geben Sie nach Aufforderung Ihr MySQL-Passwort ein, um damit zu arbeiten.

Jetzt ist es Zeit, eine Tabelle zu erstellen. Versuchen Sie dazu den folgenden Befehl. Wir haben eine Tabelle mit dem Namen 'minister' erstellt, während eine ihrer Spalten eine UNIQUE-Einschränkung hat. Es ist klar, dass die Spalte „ID“ nur die eindeutigen Werte akzeptiert und nicht die doppelten Werte.

>> TABLE-Daten ERSTELLEN.minister( Mid INT PRIMARY KEY UNIQUE NOT NULL, Name VARCHAR(45), Stadt VARCHAR(45));

Die Abfrage funktioniert ordnungsgemäß und die Tabelle wurde erstellt. Um die INSERT IGNORE-Klausel zu verstehen, müssen Sie zuerst die Funktionsweise des einfachen INSERT-Befehls sehen. Wenn Sie den INSERT-Befehl verwenden, um mehrere Informationsdaten in eine Tabelle einzufügen, unterbricht MySQL die Transaktion und generiert eine Ausnahme, wenn während der Verarbeitung ein Fehler auftritt. Folglich werden der Tabelle keine Zeilen hinzugefügt row. Fügen wir den ersten Datensatz in die Tabelle „minister“ ein, indem wir die unten gezeigte Abfrage verwenden. Die Abfrage funktioniert erfolgreich, da die Tabelle derzeit leer ist und kein Datensatz vorhanden ist, mit dem Sie das Gegenstück vergleichen können.

Da die Spalte „ID“ UNIQUE ist, wird beim Ausführen der folgenden Anweisung in der Befehlszeilen-Shell ein Fehler generiert. Dies liegt daran, dass wir in der vorherigen Abfrage den Wert „11“ hinzugefügt haben und aufgrund des UNIQUE-Schlüssels es uns nicht erlaubt, den wiederholten Wert erneut hinzuzufügen.

Daher können wir beim Überprüfen der Tabelle sehen, dass der Tabelle nur 1 Datensatz durch die erste INSERT-Abfrage hinzugefügt wurde.

>> AUSWÄHLEN * AUS Daten.Minister;

Wenn Sie hingegen die INSERT IGNORE-Klausel verwenden, werden die falschen Datenzeilen, die den Fehler auslösen, übersehen und nur die richtigen eingegeben. Im folgenden Befehl haben wir den Befehl INSERT IGNORE verwendet, um zu vermeiden, dass wiederholte Werte in die Tabelle eingefügt werden und der Fehler übersehen wird. Wie Sie sehen, hat die erste Werteliste einen doppelten Wert „11“ wie in der vorherigen Abfrage. Während die zweite Werteliste eindeutig ist, wird 1 Datensatz in die Tabelle eingefügt, der die zweite Werteliste ist. MySQL zeigt auch an, dass nur 1 Datensatz eingefügt wurde und 1 Warnung in der Nachricht generiert wird. Sie können dann davon ausgehen, dass MySQL eine Warnung ausgibt, wenn wir die INSERT IGNORE-Klausel verwenden.

Wie Sie in der folgenden Ausgabe sehen können, haben wir nur zwei Datensätze in dieser Tabelle – die erste Liste von Werten, die in der obigen Abfrage bereitgestellt wird, die übersehen wird.

>> AUSWÄHLEN * AUS Daten.Minister;

Fazit:

Wir haben alle notwendigen Beispiele für INSERT IGNORE für doppelte Werte über MySQL Workbench und MySQL-Befehlszeilen-Client-Shell erstellt.

So verwenden Sie Xdotool zum Stimulieren von Mausklicks und Tastenanschlägen in Linux
Xdotool ist ein kostenloses Open-Source-Befehlszeilentool zum Simulieren von Mausklicks und Tastenanschlägen. Dieser Artikel enthält eine kurze Anleit...
Top 5 ergonomische Computermaus-Produkte für Linux
Verursacht längere Computernutzung Schmerzen im Handgelenk oder in den Fingern?? Leiden Sie unter steifen Gelenken und müssen ständig die Hände schütt...
So ändern Sie die Maus- und Touchpad-Einstellungen mit Xinput in Linux
Die meisten Linux-Distributionen werden standardmäßig mit der Bibliothek „libinput“ ausgeliefert, um Eingabeereignisse auf einem System zu verarbeiten...