dedlfix: UNIQUE constraint?

Beitrag lesen

Hi!

... oder das zwischenzeitliche Deaktivieren des Unique-Index, was aber mit Vorsicht zu genießen ist
Hmmmm, auch sehr unhübsch.

Stell dir mal vor, du wolltest zwei IDs tauschen (die ausnahmsweise mal nicht unique sind):

SET id = y WHERE id = x
  SET id = x WHERE id = y

Das zweite geht nicht mehr eindeutig, weil du nun zweimal y hast. Und am Ende ergäbe das zweimal x und kein y.

Für deinen Fall hast du jedoch noch eine eindeutig bleibende ID als Anfasser. Dein Unique-Index auf der path-Spalte weiß aber nicht, dass du für den Augenblick zwei gleiche Werte haben willst, weil du über den PK die Datensätze auseinanderhalten kannst und den doppelten Wert gleich wieder beseitigen willst. Neben der vorübergehenden Entfernung des Unique-Index und einem temporären Wert bleibt als mögliche Lösung noch die vorübergehende Entfernung der beiden Datensätze, und sie dann mit geänderten Daten in eindeutiger Weise wieder hinzuzufügen.

Lo!