If etwas vorhanden, dann tue

Hi,

hab ne kleine Tabelle
Fremd_ID (int)
text (text)

nun will ich es so haben:
Wenn zu einer FremdID bereits etwas eingetragen ist, sol er den Wert für text ersetzen.
Gibt es die Frem_ID noch nicht soll er eine neue Zeile damit machen.

Ich verwende MySQL.
Momentan habe ich keine Anhnung, wie ich das mit nur einem einzigen SQL-Statement hinbekomme.
Mit 2 DB-Anfragen ginge es aber ich will es mit einer einzigen schaffen.

cu Desian

Hallo Desian

Versuch mal folgendes

Update TABLE_NAME Set (text = ‚VALUE‘) where not Fremd_ID is null

Gruss Christian

OOPS, Sorry
Vergiss, was ich oben gepostet habe, ich hab nicht ganz zu ende gedacht.

Das was du vor hast, schreit nach nach einem Trigger oder einer Stored Procedure. Allerdings kenn ich mich mit MySQL zu wenig aus, um ein Code-Beispiel zu geben. (gibst das überhaupt bei MySQL?)

Gruss: Christian

Wenn zu einer FremdID bereits etwas eingetragen ist, sol er
den Wert für text ersetzen.
Gibt es die Frem_ID noch nicht soll er eine neue Zeile damit
machen.

Ich verwende MySQL.

schau mal, ob dir replace weiterhilft.

Hi Desian,

hab ne kleine Tabelle
Fremd_ID (int)
text (text)

nun will ich es so haben:
Wenn zu einer FremdID bereits etwas eingetragen ist, sol er
den Wert für text ersetzen.
Gibt es die Frem_ID noch nicht soll er eine neue Zeile damit
machen.

Ich verwende MySQL.

Bedingung: Fremd_ID muss UNIQUE sein (Primärschlüssel oder entsprechenden
Index definieren).

Dann geht es einfach mittels

REPLACE INTO Tabelle (Fremd\_ID, text) VALUES ('123', 'text');

Wenn Fremd_ID mit dem Wert ‚123‘ bereits vorhanden ist, wird der bisherige
Datenbank-Eintrag durch ‚text‘ ersetzt. Ist er noch nicht vorhanden,
wird ein neuer Datensatz angelegt.

Weitere Infos: http://dev.mysql.com/doc/mysql/de/REPLACE.html

Gruss
Thomas

Hallo Desian,
wahrscheinlich willst du, daß eine Abfrage (und nicht dein Programm)unter bestimmten Vorraussetzungen etwas tut, und dazu gab’s auf heise.de mal folgenden interessanten Artikel :
http://www.heise.de/ix/artikel/2004/06/130/

Gruß
Thorsten