MySQL – So fügen Sie eine neue Zeile nur ein, wenn keine Daten vorhanden sind

Mysql So Fugen Sie Eine Neue Zeile Nur Ein Wenn Keine Daten Vorhanden Sind



MySQL ist ein bekanntes Open-Source-RDBMS zum Speichern von Daten in Datenbanken. Das Einfügen von Daten in Tabellen Ihrer Datenbank ist eine häufige Aufgabe. Manchmal möchten Benutzer keine doppelten Daten einfügen, um Redundanzen zu vermeiden. MySQL erlaubt Benutzern das Einfügen von Daten nur dann, wenn ähnliche Daten nicht bereits vorhanden sind.

In diesem Beitrag wird das Einfügen einer neuen Zeile nur dann behandelt, wenn noch keine Daten in der MySQL-Tabelle vorhanden sind. Bevor Sie mit diesem Beitrag beginnen, stellen Sie sicher, dass Sie bei Ihrem lokalen MySQL-Server angemeldet sind und eine Datenbank ausgewählt haben, in der Sie arbeiten möchten.

Fügen Sie eine neue Zeile nur dann ein, wenn keine Daten vorhanden sind, indem Sie die Anweisung „INSERT IGNORE“ verwenden

Nun, die Antwort auf die Frage im Titel ist ziemlich einfach und unkompliziert. Nutzen Sie einfach das „ EINFÜGUNG “ Schlüsselwort zusammen mit dem “ IGNORIEREN ' Stichwort. Dadurch wird sichergestellt, dass die neuen Daten oder die Einfügeabfrage nur ausgeführt werden, wenn kein vorheriger Eintrag der Daten in MySQL gefunden wird. Um sich einen kurzen Überblick darüber zu verschaffen, werfen Sie einen Blick auf die folgende Syntax:







EINFÜGUNG IGNORIEREN HINEIN [ Tisch - Name ] ( [ Spalte1 - Name ] , [ Spalte2 - Name ] , [ Spalte3 - Name ] ) WERTE ( [ wert1 ] , [ wert2 ] , [ wert3 ] ) ;

Sehen wir uns ein Beispiel an, wenn der Benutzer einen Zeilenwert eingeben möchte. 1 “, „ John ' Und ' Damhirschkuh ' im ' Kunde „Tabelle für die Spalten“ Ausweis “, „ Vorname ' Und ' Familienname, Nachname ' bzw. Führen Sie diese Abfrage aus, um diese Werte einzufügen, falls vorhanden, wenn noch keine Zeile mit diesen Werten vorhanden ist:



WÄHLEN * AUS Kunde;
EINFÜGUNG IGNORIEREN HINEIN Kunde ( Ausweis , Vorname , Familienname, Nachname ) WERTE ( 1 , 'John' , 'Damhirschkuh' ) ;

Die Ausgabe enthält zwei Tabellen, die Daten der Tabelle vor und nach der Ausführung der Abfrage anzeigen. Sie können feststellen, dass sich in der Tabelle nichts ändert, da die Zeile bereits vorhanden war, sodass MySQL den Einfügevorgang erfolgreich ignoriert hat, ohne den Fehler anzuzeigen:







Fügen Sie eine neue Zeile nur ein, wenn Daten nicht vorhanden sind, indem Sie die Klausel „WHERE NOT EXISTS“ verwenden

In MySQL ist das „ WO NICHT EXISTIEREN ”-Klausel verhindert das Einfügen von Zeilen, wenn sie bereits in der Tabelle vorhanden sind, wenn sie in der „ EINFÜGEN IN ”-Anweisung mit einer Unterabfrage, um eine Bedingung zu definieren. Wenn diese Klausel mit der Unterabfrage „ (SELECT * FROM [Tabellenname] [Spaltenname]=[Ausdruck]); ” prüft, ob eine Zeile in der Tabelle existiert, die die Bedingung erfüllt. Wenn eine Zeile vorhanden ist, wird die „ WO NICHT EXISTIERT “-Klausel wird einen falschen Wert zurückgeben, und die „ WÄHLEN ”-Anweisung gibt keine Zeilen zurück. Als Ergebnis wird die Zeile nicht in die Tabelle eingefügt. Die Syntax ist unten angegeben:

EINFÜGUNG HINEIN [ Tisch - Name ] ( [ Spalte1 - Name ] , [ Spalte2 - Name ] , [ Spalte3 - Name ] )
WÄHLEN [ wert1 ] , [ wert2 ] , [ wert3 ]
WO NICHT VORHANDEN ( WÄHLEN * AUS [ Tisch - Name ] [ Spalte - Name ] = [ Ausdruck ] ) ;

Sehen wir uns ein Beispiel an, wenn der Benutzer eine Zeile in die Mitarbeitertabelle einfügen möchte, die Werte enthält. 1 “, „ amerikanisch ' Und ' Henriot „in den Spalten“ Ausweis “, „ Name der Firma ' Und ' Kontaktname ' bzw. Aber nur, wenn eine Zeile mit einer ID von „ 1 ” wird in der Tabelle nicht gefunden oder ist nicht vorhanden. In diesem speziellen Fall lautet die Abfrage:



WÄHLEN * AUS Mitarbeiter;

EINFÜGUNG HINEIN Mitarbeiter ( Ausweis , Name der Firma , Kontaktname )
WÄHLEN 1 , 'Amerikanisch' , 'Henriot'
WO NICHT VORHANDEN ( WÄHLEN * AUS Mitarbeiter WO Ausweis = 1 ) ;

Die Ausgabe zeigt eine neue Zeile an, die nicht als Zeile mit dem „ Ausweis ' gleich ' 1 ' existierte bereits.

Fügen Sie eine neue Zeile nur ein, wenn keine Daten vorhanden sind, indem Sie die Klausel „ON DUPLICATE KEY UPDATE“ verwenden

Nun, eine andere Möglichkeit ist die Verwendung des „ BEI DUPLIKAT-SCHLÜSSEL-UPDATE ”-Klausel in MySQL. Da diese Klausel mit der „INSERT INTO“-Abfrage verwendet wird, bildet sie eine „if-else“-Ausführung. Das bedeutet also, dass die Daten in der Tabelle nur aktualisiert werden, wenn sie eindeutig sind. Andernfalls würde keine Änderung eintreten. Die allgemeine Syntax dafür lautet wie folgt:

EINFÜGUNG HINEIN [ Tisch - Name ] ( [ Spalte1 - Name ] , [ Spalte2 - Name ] , [ Spalte3 - Name ] ) WERTE ( [ wert1 ] , [ wert2 ] , [ wert3 ] )
AN DUPLIKAT TASTE AKTUALISIEREN [ Spalte1 - Name ] = [ Spalte1 - Name ] ;

Sehen wir uns ein Beispiel an, um Werte in „ 2 “, „ Paska “, „ Nixon “, „ London “, „ Vereinigtes Königreich ' Und „(171) 555-7788 ' in der Tabelle ' Kunde ” für die Spalten “ Ausweis “, „ Vorname “, „ Familienname, Nachname “, „ Stadt “, „ Land ' Und ' Telefon ' bzw. Wenn die Zeile noch nicht existiert, wird sie eingefügt. Andernfalls werden die Werte aktualisiert, bei denen das „ ID = ID “ Bedingung erfüllt. Führen Sie diese Abfrage aus:

WÄHLEN * AUS Kunde ;
EINFÜGUNG HINEIN Kunde ( Ausweis , Vorname , Familienname, Nachname , Stadt , Land , Telefon )
WERTE ( 2 , 'Pascale' , 'Nixon' , 'London' , 'VEREINIGTES KÖNIGREICH' , '(171) 555-7788' )
AN DUPLIKAT TASTE AKTUALISIEREN Ausweis = Ausweis;

Dies ist die Tabelle vor dem Ausführen der Abfrage, Sie können sehen „ Ausweis ' gleich ' 2 ' ist nicht vorhanden:

Nach dem Ausführen der Abfrage fügt diese Abfrage neue Zeilen in die Tabelle ein:

Sie haben erfolgreich eine neue Zeile eingefügt, da vor dem Ausführen der Abfrage keine Daten vorhanden sind.

Abschluss

Fügen Sie in MySQL nur dann eine neue Zeile ein, wenn noch keine Daten vorhanden sind, indem Sie das „ IGNORIEREN EINFÜGEN ” Aussage oder “ WO NICHT EXISTIERT ” Klausel in der “ EINFÜGEN IN ' Stellungnahme. Eine andere Möglichkeit, dies zu tun, ist die Verwendung des „ BEI DUPLIKAT-SCHLÜSSEL-UPDATE ” Klausel in der “ EINFÜGEN IN ”-Anweisung zum Aktualisieren, wenn die Zeile bereits vorhanden ist. Fügen Sie andernfalls eine neue Zeile hinzu. In dem Beitrag wurde erläutert, wie eine neue Zeile nur eingefügt wird, wenn keine Daten vorhanden sind.