Konvertieren von INSERT-Befehlen in UPDATE

8

Ich habe zwei INSERT -Befehle, die für mich so nutzlos sind, weil die zwei Reihen von Reihen - die, die bereits in der Tabelle sind, und diejenigen, die ich als INSERT -Befehle habe - nicht disjunkt sind. Beide Befehle fügen viele Zeilen und viele Werte ein.

Daher erhalte ich den doppelten Eintragsfehler, wenn ich diese Zeilen ausführen möchte.

Gibt es eine einfache Möglichkeit, diese Befehle in UPDATE zu konvertieren?

Ich weiß, das klingt doof, denn warum mache ich INSERT -Befehle, wenn ich UPDATE möchte. Nur um es ein klares Szenario zu machen: ein anderer Entwickler gab mir das Skript:)

Vielen Dank im Voraus, Daniel

BEARBEITEN - Problem gelöst

Zuerst habe ich eine Tabelle erstellt und sie mit meinen INSERT -Befehlen gefüllt, dann habe ich den folgenden REPLACE -Befehl verwendet:

%Vor%

Dies kann ursprünglich gefunden werden unter: Wie kann ich zwei MySQL-Tabellen zusammenführen?

    
Daniel Szalay 11.09.2010, 21:22
quelle

4 Antworten

13

Das Schlüsselwort REPLACE von MySQL tut dies. Ersetzen Sie einfach das INSERT -Schlüsselwort in Ihren Abfragen durch das Wort REPLACE , und es sollte die Zeilen aktualisieren, anstatt neue einzufügen. Bitte beachten Sie, dass dies nur funktioniert, wenn Sie einen Primärschlüssel oder eine eindeutige Schlüsselspalte einfügen.

    
Asaph 11.09.2010, 21:39
quelle
0

Sie müssten sie von Hand in Updates umschreiben. Wenn ich auf ein solches Problem stoße, frage ich zuerst nach der Anzahl bestimmter Primärschlüssel, wenn keine gefunden werden, füge ich einen generischen Datensatz ein und aktualisiere ihn danach. Dadurch können neue Daten hinzugefügt und bereits vorhandene Daten aktualisiert werden, und Sie müssen nicht zwischen dem Einfügen neuer Daten und dem Aktualisieren von Daten unterscheiden.

    
Femaref 11.09.2010 21:27
quelle
0

Für MySQL können Sie entweder die Syntax INSERT IGNORE oder INSERT ... ON DUPLICATE UPDATE verwenden. Weitere Informationen finden Sie im MySQL-Referenzhandbuch

    
dty 11.09.2010 21:39
quelle
0

Sie können Ihre Abfragen einfach ändern, um doppelte Zeilen zu aktualisieren, siehe INSERT .. . ON DUPLICATE KEY Syntax in MySQL

    
dev-null-dweller 11.09.2010 21:41
quelle

Tags und Links