AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Dreieckstausch? (Daten 2er Datensätze vertauschen)
Thema durchsuchen
Ansicht
Themen-Optionen

Dreieckstausch? (Daten 2er Datensätze vertauschen)

Ein Thema von yankee · begonnen am 18. Jan 2007 · letzter Beitrag vom 29. Jul 2009
Antwort Antwort
Seite 2 von 2     12   
Blup

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

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

  Alt 29. Jul 2009, 08: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
Antwort Antwort
Seite 2 von 2     12   


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:49 Uhr.
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