Fügt mysql UPDATE die Werte ein, wenn sie nicht existieren?

8
%Vor%

Ich bin gespannt, ob update auch die Werte einfügt, wenn die WHERE-Bedingung fehlschlägt. Ich habe auf w3schools gelesen, die nur Updates existierende Daten in der Datenbank aktualisieren, aber in meinem Skript fügt es automatisch Zeilen mit den Daten ein. Ich frage mich, ob es ein Fehler im Skript sein könnte oder wie UPDATE auf MySQL funktioniert.

    
Zhianc 27.10.2011, 10:57
quelle

4 Antworten

12

Nein. Wenn in Ihrem Beispiel kein Eintrag mit ID = 12 in der Datenbank vorhanden ist, gibt die Abfrage "keine betroffenen Zeilen" zurück. Ein Update wird niemals einen neuen Eintrag in MySQL erstellen.

BEARBEITEN: Obwohl update keinen neuen Eintrag erstellt, kann es Standard / automatische Werte enthalten, die in Ihrem Datenbankschema eingerichtet wurden (z. B. aktueller Zeitstempel).

    
Rodrigo Ferreira 27.10.2011 11:01
quelle
3

NEIN. Update fügt keinen Wert ein, wenn der Wert in der Tabelle nicht existiert. Bitte überprüfen Sie, ob das Skript den Status des Updates überprüft und einen weiteren Aufruf an die DB vornimmt, um die Daten einzufügen.

    
Vivek Viswanathan 27.10.2011 11:00
quelle
1

Ihr SQL sollte folgendes tun -

Aktualisieren Sie alle Datensätze in der Elementtabelle mit der ID 12, indem Sie ihren Namen auf "haha"

setzen

Update fügt keine Datensätze ein, wenn sie nicht existieren, es aktualisiert nur vorhandene Datensätze in der Tabelle.

    
ipr101 27.10.2011 11:00
quelle
0

Kurze Antwort: Nein.

Lange Antwort: Wenn Ihre Spalte nicht existiert, erhalten Sie einen Fehler. Wenn Ihre Wo-Bedingungsspalte nicht existiert, erhalten Sie ebenfalls einen Fehler. Wenn Ihr Wert für die Where-Bedingung nicht vorhanden ist, wird nichts unternommen.

    
Godzilla 27.10.2011 11:01
quelle

Tags und Links