Insert ... on duplicate key update nichts mit MySQL

Mein problem ist, dass ich mehrere eindeutige Schlüssel einer Tabelle.

  1. Einfügen ignorieren ist keine option, da es unterdrückt die Fehler.
  2. MySQL hat keine Unterstützung für jede Art von Bedingungen außerhalb einer Anweisung (ex. if (cond), dann einfügen sonst nicht einfügen)
  3. Gespeicherte Prozeduren sind keine option (der einzige Ort, ich kann die if/else-Anweisungen)
  4. On duplicate key update könnte ein Schlüssel mit einem neuen Wert, aber ich will die eindeutigen Schlüssel nicht zu ändern, im Fall eines fehl, ist der unique-Einschränkung.

Also die einzige Möglichkeit wäre, Sie auf duplizieren, nur nicht aktualisieren, nichts. Gibt es eine Möglichkeit, kann ich dies erreichen? Oder gibt es andere Optionen?

  • Warum sind gespeicherte Prozeduren nicht eine option?
  • und warum on duplicate key update könnte ein Schlüssel mit dem neuen Wert?
  • Was wollen Sie passieren, wenn es einen doppelten Schlüssel? Sie müssen wissen, dass es einen Konflikt?
  • Wenn es einen doppelten Schlüssel dont nichts zu tun ... Aber ich muss wissen, ob es irgendeinen anderen Konflikt außer duplizieren (ex. fk-constraint).
  • Das ist das problem , ich kann einfach nicht lassen Sie das update stmt leer. Ich brauche einige Attribut, das zu ändern.
  • Siehe meine Antwort - Sie können eine Spalte Wert, um den vorhandenen Wert -, foreign key-Constraints wird, sprudeln im Gegensatz zu IGNORE aber keine Werte ändern, die auf Konflikt.

InformationsquelleAutor Tudor | 2012-10-23
Schreibe einen Kommentar