Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Dreieckstausch? (Daten 2er Datensätze vertauschen) (https://www.delphipraxis.net/84586-dreieckstausch-daten-2er-datensaetze-vertauschen.html)

Blup 29. Jul 2009 07:09

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:
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.


Alle Zeitangaben in WEZ +1. Es ist jetzt 09:09 Uhr.
Seite 2 von 2     12   

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz