Einzelnen Beitrag anzeigen

Blup

Registriert seit: 7. Aug 2008
Ort: Brandenburg
1.487 Beiträge
 
Delphi 12 Athens
 
#11

Re: Dreieckstausch? (Daten 2er Datensätze vertauschen)

  Alt 29. Jul 2009, 07:09
Mir ist nicht ganz klar warum der Tausch optimiert werden muss?

Wenn im Normalfall keine negativen Werte vorkommen, vieleicht so:
Code:
UPDATE tabelle SET spalte = -spalte         WHERE (id = 3) OR (id = 4);
UPDATE tabelle SET spalte = spalte + 3 + 4  WHERE (id < 0);
Da diese Spalte scheinbar nur eine Sortierreihenfolge darstellt, könnte man diese mit ID(FK auf Haupttabelle) in eine zusätzliche Tabelle auslagern. Zum Sortieren alle zu ändernden Einträge löschen und neu eintragen.

Sind die zu ändernden Datensätze immer Teil einer Identität(Master/Detail), die vor Schreibzugriff auf die Detaildatensätze innerhalb der Transaktion sowieso gesperrt wird, so kann auf die Eindeutigkeit verzichtet werden. Der Geschwindigkeitsunterschied ist sicherlich vernachlässigbar.
  Mit Zitat antworten Zitat