Martin Hein: ON DUPLICATE KEY ???

Hallo Forum,

ich habe in meiner Tabelle ein Feld rewrite\_url vom Typ 'varchar(255)'. Das Feld ist unique. Ich versuche ein
Update der Tabelle auszuführen:

UPDATE content\_offline\_new
SET rewrite\_url = 'text'
WHERE site\_id =299

mit dem Ergebnis: "#1062 - Duplicate entry 'text'

Soweit ist alles korrekt und ich habe insofern die Sicherheit,
dass es keine Datensätze mit Werten geben kann, die in dem Feld
den selben Wert haben.

Jetzt habe ich in der MySQL-Dokumentation die Anweisung
'ON DUPLICATE KEY' gefunden. Die scheint in etwa das
zu machen, was ich brauche und ich habe mal folgenden
Versuch gewagt:

UPDATE content\_offline\_new
SET rewrite\_url = 'text'
WHERE site\_id =299
ON DUPLICATE KEY
UPDATE rewrite\_url = "alternativtext"

Das hat natürlich so nicht hingehauen. Jetzt frag ich mich:

  • Ist die Anweisung 'ON DUPLICATE KEY' für das,
      was ich vorhabe zu gebrauchen ?

  • Wenn nicht: Gibt es eine Alternative für meine Fall ?

danke für eure Tipps und

beste Gruesse,
martin

  1. Moin Moin!

    Das hat natürlich so nicht hingehauen.

    Was ist passiert? Ist Dir der Server explodiert?

    Jetzt frag ich mich:

    http://dev.mysql.com/doc/refman/5.0/en/insert-on-duplicate.html sollte helfen ...

    Alexander

    --
    Today I will gladly share my knowledge and experience, for there are no sweeter words than "I told you so".
  2. Hallo,

    ich sehe kein "on duplicate key update" für das Update-Statement, nur für das Insert-Statement ;)

    http://dev.mysql.com/doc/refman/5.0/en/update.html

    Grüße,
    Gun

  3. Hello,

    • Wenn nicht: Gibt es eine Alternative für meine Fall ?

    erkläre uns bitte doch erstmal, _was_ _warum_ UNIQUE definiert ist. Was willst du machen, wenn dagegen verstoßen wird und hast du dir gut überlegt warum dagegen nicht verstoßen werden darf?

    MfG
    Rouven

    --
    -------------------
    He is entertaining both out of the car and in the car because if you tell him that a corner is almost flat then he is the guy who is going to try to take it flat even if it means shunting it the other side of it, he will come with the data and say 'hey, I may have crashed and destroyed the car, but I was flat-out'. That is an interesting quality that he has!  --  Team Member on Jacques Villeneuve