MySQL Insert ignorieren Sie den doppelten Schlüssel

MySQL Insert ignorieren Sie den doppelten Schlüssel
Es gibt oft widersprüchliche Daten in Tabellen oder Ergebnissätzen. Es ist auch zeitaufwändig, zu korrigieren, und oft wiederholte Datensätze müssen vermieden werden. Es ist erforderlich, doppelte Datensätze zu identifizieren und aus beiden Tabellen zu löschen. In diesem Abschnitt wird eingehen. In diesem Handbuch lernen Sie, wie Sie die Ignorierungsklausel verwenden, um den Fehler zu vermeiden.

Syntax:

Hier ist die Syntax für die Insert Ignoring -Abfrage.

>> Ignorieren Sie in Table_Name (col1, col2, col3) Werte (value_list), (value_list), (value_list);

Ignorieren Sie ignorieren Sie über Workbench:

Öffne deine MySQL Workbench 8.0 von Ihrem System aus und verbinden Sie es mit der Datenbankinstanz.

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

>> TABLE -Mitarbeiter erstellen (ID -Int -Primärschlüssel, nicht NULL, Name Varchar (50) NICHT NULL, Altersvarchar (50), Gehaltsvarchar (50), eindeutig (ID));

Nach der Erstellung finden Sie die Tabelle „Mitarbeiter“ innerhalb 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 Gitteransicht 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 "Anwenden", um die Änderungen anzuwenden.

Ein neues Fenster wird mit den relevanten Abfragen im Zusammenhang mit den oben eingegebenen Datensätzen geöffnet. Dieser Bildschirm kann als "Rezensions" -Screen bezeichnet werden. Wenn Sie etwas ändern möchten, können Sie es hier tun. Drücken Sie ansonsten die Schaltfläche anwenden, um die Abfragen auszuführen.

Wie Sie sehen können, wurde die Abfrage erfolgreich ausgeführt und die Datensätze werden in der Datenbank und in der Tabelle „Mitarbeiter“ gespeichert, und die Aufzeichnungen werden 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 "Finish".

Hier ging es um die Gitteransicht. Jetzt werden wir Datensätze über den Abfragebereich einfügen. In der Zwischenzeit haben wir dieses Mal doppelte Datensätze eingefügt, um die Ausgabe zu überprüfen. Wir haben also die folgende Abfrage „Einfügen“ ausprobiert, in der wir zwei Wertelisten haben. Beide Wertelisten haben in der Spalte 'ID' den gleichen Wert. Wählen Sie die Abfrage aus und klicken Sie auf das Flash -Zeichen, um die Abfrage auszuführen.

Die Abfrage funktioniert nicht korrekt und erzeugt einen Fehler aufgrund der doppelten Werte im Befehl Einfügen, wie im Bild angezeigt.

Versuchen Sie nun die gleiche obige Abfrage mit der Einfügung Ignore -Klausel und führen Sie sie wie angezeigt aus.

Sie können sehen, dass es keinen Fehler im Ausgabebereich erzeugt, aber es gibt eine Warnung, dass der Befehl doppelte Werte enthält.

Aktualisieren Sie die Gitteransicht von Tabelle „Mitarbeiter“. Die Ignorierung der Ignorierung hat die Hälfte funktioniert. Es wurde die erste Liste der Werte in die Tabelle eingefügt, die zweite Liste der Werte wurde jedoch aufgrund des wiederholten Wertes „13“ ignoriert, der ignoriert wurde.

Ignorieren Sie über die Befehlszeilenschale ignorieren:

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

Jetzt ist es Zeit, einen Tisch zu erstellen. Versuchen Sie dazu den folgenden Befehl, dies zu tun. Wir haben eine Tabelle namens "Minister" erstellt, während eine seiner Kolumnen eine einzigartige Einschränkung hat. Es ist klar, dass die Spalte „ID“ nur die eindeutigen Werte und nicht die doppelten Werte akzeptiert.

>> Tabellendaten erstellen.Minister (MID INT -Primärschlüssel eindeutig nicht NULL, Name Varchar (45), Stadtvarchar (45));

Die Abfrage funktioniert angemessen und die Tabelle wurde erstellt. Um die Klausel ignorieren zu verstehen, müssen Sie zunächst das Arbeiten des einfachen Einfügungsbefehls sehen. Wenn Sie den Befehl einfügen verwenden, um mehrere Informationsdaten in eine Tabelle einzufügen, setzt MySQL die Transaktion aus und generiert eine Ausnahme, wenn ein Fehler während der gesamten Verarbeitung auftritt. Infolgedessen wird in der Tabelle keine Zeilen hinzugefügt. Lassen Sie uns den ersten Datensatz in der Tabelle „Minister“ mit der untergeklagten Abfrage einfügen. Die Abfrage funktioniert erfolgreich, da die Tabelle derzeit leer ist und es keine Aufzeichnungen gibt.

Wenn die Spalte „ID“ eindeutig ist, wird ein Fehler erzeugt, wenn wir den folgenden Anweisungen in der Befehlszeilenschale ausprobieren. Dies liegt daran, dass wir den Wert "11" in der vorherigen Abfrage hinzugefügt haben, und aufgrund des eindeutigen Schlüssel.

Bei der Überprüfung der Tabelle können wir also sehen.

>> aus Daten auswählen.Minister;

Wenn Sie umgekehrt die Klausel ignorieren Ignorieren, werden die falschen Datenzeilen, die den Fehler auslösen. Im folgenden Befehl haben wir den Befehl Insert Ignore verwendet, um wiederholte Werte in die Tabelle hinzuzufügen und den Fehler zu übersehen. Wie Sie sehen können, hat die erste Liste der Werte einen doppelten Wert "11" wie in der vorherigen Abfrage. Während die zweite Liste der Werte eindeutig ist, werden 1 in der Tabelle eingefügte Datensatz angezeigt. Dies ist die zweite Liste der Werte. MySQL zeigt auch an, dass nur 1 Datensatz eingefügt wurde und in der Nachricht eine Warnung generiert wird. Sie können dann annehmen, dass MySQL eine Warnung liefert, wenn wir die Klausel ignorieren, wenn wir die Klausel ignorieren.

Wie Sie aus der folgenden Ausgabe sehen können, haben wir in dieser Tabelle nur zwei Datensätze -die Liste der Werte, die in der obigen Abfrage angegeben sind, die übersehen wird.

>> aus Daten auswählen.Minister;

Abschluss:

Wir haben alle erforderlichen Beispiele für den Einfügen von Ignorieren auf doppelten Werten über MySQL Workbench und MySQL Command Line Client Shell durchgeführt.