SQL: via UPDATE auch Zeilen erstellen?

ms92

Mitglied
Hallo,
ich wollte mal fragen, ob es irgendwie geht mit dem Befehl UPDATE auch Zeilen zu erstellen. Da man ja sonst immer gucken muss, ob schon eine Zeile mit der ID existiert, oder ob man eine neue erstellen muss. Versteht ihr was ich meine?
Gruß
ms92
 
Nein verstehe nicht was du meinst und vor hast.
Aber Update ist für die Änderung der Datensätze gedacht und für nichts anderes sonst :)

mfg.
 
Ja, okay. Hatte ich mir auch schon fast gedacht ;)
Ich dachte nur vielleicht gibt es ja irgendwie ein Trick oder so. Ich dachte nämlich, dass man so nur einmal einen SQL generiert, egal ob was neues eingetragen, oder etwas geändert wird...
gruß
 
Für einen neuen Datensatz musst du "INSERT" verwenden.
Zum ändern eines Datenstzes musst du "UPDATE" verwenden.

Ansonsten ist mir nicht recht klar was genau du eigentlich damit vorhast...?
Vielleicht kannst du da ein paar nähere Angaben machen.

Gruß,
Norbert
 
Welches RDBMS hast DFu denn? (bitte immer mit angeben!)

Bei Oracle (ich glaube ab version 9) gibt es den Befehl MERGE, damit kann man genau das machen was Du suchst.
Es wird ein Update ausgeführt und falls die Zeile (Record oder Datensatz) noch nicht existiert erfolgt ein Insert.
Schau mal im Manual deiner DB nach Merge.
mfg
 
Was meinst du mit RDBMS? Welche Datenbank? Ich benutz MySQL. Oder was meinst du?
Aber dieser Befehl "Merge" von dem du spriuchst, wäre genau das, was ich suche!
 
Okay, hab jetzt schon gefunden, wonach ich suche:
Bei MySQL heißt der Befehl REPLACE, damit kann man etwas in eine Datenbank einfügen oder aktualisieren (Also INSERT und UPDATE in einem).
 
Alternativ bietet sich auch INSERT INTO ... ON DUPLICATE KEY UPDATE ... an, womit du mehr Kontrolle darüber hast, was einzufügen oder zu ändern ist. Mit Replace ersetzt du alle angegebenen Spaltenwerte, was eventuell nicht immer gewollt ist.
 
Was viele nicht wissen seit MySQL 4.1 gibt es einen Befehl der sich REPLACE nennt.

Die Synthax entspricht UPDATE nur ist der Satz nicht da wird er angelegt. Also genau das was du suchst.

Aber ACHTUNG:
Wenn du mit Key´s schaffst (vorallem Foreign Keys) musst du aufpassen, da REPLACE die CASCADE-Verknüpfungen auser Funktion setzt, d.h. deine DB könnte unter Umständen extrem inkonsistent werden!

Gruss
MixTer
 
Was meinst du mit RDBMS? Welche Datenbank? Ich benutz MySQL. Oder was meinst du?
...

RDBMS oder DBMS oder auch DatenBankManagementSystem bzw.
Relationales DatenBankManagementSystem

Davon gibt es zwar nicht allzuviele und fast alle sind SQL-Systeme, trotzdem gibt es riesige Unterschiede
und genau deshalb ist es wichtig bei der Frage immer mit anzugeben welches DBMS Du benutzt,
damit Du auch die genau passende Antwort bekommst!

siehe auch:http://www.tutorials.de/forum/relat...nksystem-bei-den-fragen-im-titel-angeben.html


mfg
 
Zurück