in zwei Bedingungen einfügen oder aktualisieren. Bestehende Zeile Wenn eine Übereinstimmung gefunden wird.
Lösung:
Die Antwort liegt in MySQLs Einfügen in ... über doppelte Schlüsselaktualisierungssyntax. Diese leistungsstarke Funktion ermöglicht eine effiziente Datenmanipulation durch Einfügen einer neuen Zeile, wenn keine übereinstimmende Zeile vorhanden ist oder die vorhandene Zeile aktualisiert wird, wenn eine eindeutige Schlüsselbeschränkung verletzt wird., um das gewünschte Verhalten zu erreichen, muss die Tabelle einen eindeutigen Schlüssel definiert haben (in diesem Fall ein zusammengesetzter Schlüssel) für die beiden Spalten ('Name' und 'dates'). Dieser Schlüssel dient als Bezeichner für eindeutige Zeiger in der Tabelle.
Beispielszenario:
betrachten die folgende Tabellenstruktur:
erstellen table mything ( ID int auto_increment Primärschlüssel, Nennen Sie int nicht null, Werte1 int nicht null, Werte2 int nicht null, Daten datum nicht null, eindeutiger Schlüssel (Name, Daten) - Diese Zeile ist entscheidend );
Einfügen eine neue Zeile mit der folgenden Aussage entweder eine neue Zeile oder aktualisiert eine vorhandene, abhängig von der Existenz einer Zeile mit demselben "Namen" und "Daten":
einfügen MyThing (Name, Werte, Werte 2, Daten) Werte (77777,1,1, '2015-11'). 1;
create table myThing ( id int auto_increment primary key, name int not null, values1 int not null, values2 int not null, dates date not null, unique key(name,dates) -- This line is crucial );
aus mything; ---- ------ ---------- ---------- ------------ | id | Name | Werte1 | Werte2 | Daten | ---- ------ ---------- ---------- ------------ | 1 | 777 | 1 | 4 | 2015-07-11 | | 2 | 778 | 1 | 1 | 2015-07-11 | ---- ------ ---------- ---------- ------------
insert myThing(name,values1,values2,dates) values (777,1,1,'2015-07-11') on duplicate key update values2=values2 1;Wie das Beispiel demonstriert, wird der Einfügen in ... auf ... auf doppelte Schlüsselaktualisierungssyntax effizient einfügen und aktualisiert Vorgänge basierend auf dem definierten eindeutigen Schlüssel, wobei die Notwendigkeit komplexer gespeicherter Prozeduren beseitigt.
Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.
Copyright© 2022 湘ICP备2022001581号-3