![]() |
Re: Dreieckstausch? (Daten 2er Datensätze vertauschen)
Mir ist nicht ganz klar warum der Tausch optimiert werden muss?
Wenn im Normalfall keine negativen Werte vorkommen, vieleicht so:
Code:
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.
UPDATE tabelle SET spalte = -spalte WHERE (id = 3) OR (id = 4);
UPDATE tabelle SET spalte = spalte + 3 + 4 WHERE (id < 0); 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. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:50 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz