# Problem mit mysql replace



## -André- (6. September 2006)

Hallo,
ich habe ein Problem mit der MYSQL Funktion „REPLACE“. In meiner Tabelle sind drei Spalten, die erste davon ist der Index, die zweite „Name“ und die dritte „WInfo“. 
Wenn noch kein Eintrag vorhanden ist soll ein euer erstellt werden. Wenn ich jetzt etwas in die Tabelle schreibe, dass so schon in der Spalte „Name“ vorkommt soll die Spalte „WInfo“ aktualisiert werden, leider klappt das bei mir nicht. 
Der Code mit dem ich das versucht hab lautet:

```
$anfrage = 'REPLACE INTO Tabelle  SET name ="'.$name.'", WInfo ="'.$wInfo.'"';
```
Kann mir einer vielleicht helfen?

Viellen Dank schonmal!

-André-


----------



## Matthias Reitinger (6. September 2006)

Hallo,

das MySQL-Handbuch sagt dazu Folgendes (Hervorhebung durch mich):


> REPLACE funktioniert genau wie INSERT, ausser dass der alte Datensatz gelöscht wird, bevor ein neuer eingefügt wird, wenn ein alter Datensatz in der Tabelle denselben Wert wie der neue *auf einem eindeutigen Index* hat.


Die Spalte, anhand der entschieden wird, ob ein neuer Eintrag erfolgen oder ein alter Eintrag ersetzt werden soll, muss also entweder ein PRIMARY KEY sein oder einen UNIQUE-Index besitzen. Wenn das Anlegen eines solchen Index nicht in Frage kommt, muss die Operation wohl mit mehreren Abfragen realisiert werden.

Grüße,
 Matthias


----------

