Was bewirkt INSERT ON DUPLICATE KEY UPDATE in MySQL?

Was Bewirkt Insert On Duplicate Key Update In Mysql



Bei der Arbeit mit einer MySQL-Datenbank kann es gelegentlich vorkommen, dass Benutzer beim Versuch, einen neuen Datensatz in eine Tabelle einzufügen, auf einen Fehler wegen doppelter Schlüsselverletzung stoßen. Dieser Fehler tritt auf, wenn bereits eine Zeile mit demselben Primärschlüssel oder eindeutigen Schlüssel vorhanden ist. Dieses Problem kann jedoch behoben werden, indem die vorhandenen Datensätze mit den neuen Werten aktualisiert werden. In solchen Fällen ist die Aktivierung der „ Bei Aktualisierung des doppelten Schlüssels einfügen Diese Funktion wird dieses Problem effektiv lösen.

In diesem Beitrag wird gezeigt, was „INSERT ON DUPLICATE KEY UPDATE“ ist und wie es in MySQL funktioniert.







Was bewirkt INSERT ON DUPLICATE KEY UPDATE in MySQL?

In MySQL ist die Bei Aktualisierung des doppelten Schlüssels einfügen ist eine erweiterte Funktion der INSERT-Anweisung, die zwei Funktionalitäten in einer einzigen Operation kombiniert. Es fügt beispielsweise einen Datensatz in eine bestimmte Tabelle ein, wenn der angegebene Datensatz noch nicht vorhanden ist. Wenn der gewünschte Datensatz jedoch bereits vorhanden ist, wird der vorhandene Datensatz mit dem neuen Wert aktualisiert.



Um die Funktion „INSERT ON DUPLICATE KEY UPDATE“ zu aktivieren, müssen Benutzer die unten angegebene Syntax befolgen:



EINFÜGEN IN [ Tabellenname ] ( [ col_1 ] , [ col_2 ] , ... )
WERTE ( [ val_1 ] , [ val_2 ] , ... )
AUF DUPLICATE KEY UPDATE [ col_1 ] = [ val_1 ] , [ col_2 ] = [ val_2 ] , ...;





Geben Sie den Tabellennamen, die Spaltennamen und die Werte Ihrer Wahl anstelle von Tabellenname, Spalte_1, Spalte_2 usw. an.

Beispiel: Wie verwende ich die Funktion „INSERT ON DUPLICATE KEY UPDATE“ in MySQL?



Stellen Sie zunächst mit den entsprechenden Berechtigungen eine Verbindung zur MySQL-Datenbank her und führen Sie dann den folgenden Befehl aus, um die Daten der Tabelle „linuxhint_author“ abzurufen:

WÄHLEN * VON linuxhint_author;

Der Befehl select ruft alle Datensätze der Tabelle „linuxhint_author“ ab:

Führen Sie nun den folgenden SQL-Befehl aus, um einen bestimmten Datensatz in der Tabelle „linuxhint_author“ einzufügen oder zu aktualisieren, wobei die Funktion „ON DUPLICATE KEY UPDATE“ aktiviert ist:

IN linuxhint_author EINFÜGEN ( Ausweis , Name, Alter, AutorRang, E-Mail )
WERTE ( 6 , „Alex Johnson“ , 29 , 3 , 'alex@example.com' )
AUF DUPLICATE KEY UPDATE
name = WERTE ( Name ) ,
Alter = WERTE ( Alter ) ,
AuthorRank = WERTE ( AutorRank ) ,
E-Mail = WERTE ( Email ) ;

Da der angegebene Datensatz noch nicht in der Tabelle „linuxhint_author“ vorhanden ist, wird er erfolgreich in die ausgewählte Tabelle eingefügt:

Fügen wir einen doppelten Datensatz ein und sehen wir, wie das „ AUF DUPLICATE KEY UPDATE ”Funktionsarbeit in MySQL:

IN linuxhint_author EINFÜGEN ( Ausweis , Name, Alter, AutorRang, E-Mail )
WERTE ( 3 , „Michael Johnson“ , 28 , 4 , 'michael@example.com' )
AUF DUPLICATE KEY UPDATE
name = WERTE ( Name ) ,
Alter = WERTE ( Alter ) ,
AuthorRank = WERTE ( AutorRank ) ,
E-Mail = WERTE ( Email ) ;

Aus dem folgenden Snippet ist deutlich ersichtlich, dass der bereits vorhandene Datensatz erfolgreich mit den neuen Werten aktualisiert wurde:

Die Funktion „INSERT ON DUPLICATE KEY“ kann auch auf eine bestimmte Spalte statt auf den gesamten Datensatz angewendet werden:

IN linuxhint_author EINFÜGEN ( Ausweis , AutorRank )
WERTE ( 3 , 2 )
BEI DUPLICATE KEY UPDATE authorRank = VALUES ( AutorRank ) ;

Im obigen Code wird der „authorRank“ eines Autors mit der ID „3“ auf einen neuen Wert „2“ aktualisiert:

So funktioniert die Funktion „INSERT ON DUPLICATE KEY UPDATE“ in MySQL.

Abschluss

In MySQL ist die Bei Aktualisierung des doppelten Schlüssels einfügen ist eine erweiterte Funktion, die es uns ermöglicht, die Funktionalität des Einfügens einer neuen Zeile und der Aktualisierung/Änderung einer bereits vorhandenen Zeile in einem einzigen Vorgang zu kombinieren. Diese Funktion hilft Benutzern, den Fehler „Verletzung doppelter Schlüssel“ zu vermeiden, wenn sie versuchen, eine neue Zeile in eine bestimmte Tabelle einzufügen. In diesem Beitrag wurde erklärt, was „INSERT ON DUPLICATE KEY UPDATE“ ist und wie es in MySQL funktioniert.