Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
 Vertikalzeppelin, erdgebunden


Mit dabei seit Mitte 2005 Wohnort: Limbach-Oberfrohna Status: Offline
...und hat diesen Thread vor 5150 Tagen gestartet!
| Fahrzeuge 1. Landcruiser HZJ105  2. Volvo XC90  3. Mitsubishi Pajero V60 3.2DI-D 4. Opel Monty 3.5 V6 LPG  5. Air Patrol 2.0 Rallye  |
|
Verfasst am: 13.07.2011 13:13:54 Titel: Flashis little Helper - Alltagsprobleme schnell gelöst |
|
|
Heute - Feldinhalte in einer Datenbank vertauschen
Sie kennen das: Sie haben eine SQL kompatible Datenbank und müssen in einer Tabelle die Inhalte von zwei Feldern vertauschen.
Vorher:
id | vorname | name | 1 | Pflug | Andreas | 2 | Foppinger | Thomas | 3 | Strunzbichler | Susanne | Insgesamt 3 Einträge in der 3-spaltigen Tabelle. |
Das Ziel:
id | vorname | name | 1 | Andreas | Pflug | 2 | Thomas | Foppinger | 3 | Susanne | Strunzbichler | Insgesamt 3 Einträge in der 3-spaltigen Tabelle. |
Normalerweise würde man denken, dass das Statement
Dieses Problem erledigt. Leider ist dem nicht so, da der Interpreter das Statement von hinten abarbeitet und als Ergebis das raus kommt:
id | vorname | name | 1 | Andreas | Andreas | 2 | Thomas | Thomas | 3 | Susanne | Susanne | Insgesamt 3 Einträge in der 3-spaltigen Tabelle. |
Was tun?
Nun mit einem kleinen Kunstgriff und dem Wissen um die interne Behandlung von Datensätzen, lösen wir die Aufgabe ganz elegant:
Dieser Subselect liest das Resultset bereits in korrigierter Reihenfolge ein und projeziert es auf den Replace-Teil das Statements. Da die Spalte id der Primärschlüssel war, wird er nicht angefasst und nur als Referenzierung innerhalb des Subselects mit ausgelesen.
voila - Namensfelder getauscht
Eine weitere effiziente Lösung für ein häufiges Alltagsproblem, mit dem jeder von uns schnell konfrontiert werden könnte.  | _________________ Leben ist draußen. Denn wer das Abenteuer sucht, darf den Luxus nicht fürchten.
 |
|
|
Nach oben |
|
 |
|
Verfasst am: 13.07.2011 13:59:40 Titel: |
|
|
was muss ich tun um in ein solches Problem überhaupt zu kommen`?  | _________________ Gruß Erik
Freiwillige Feuerwehr --- Unsere Freizeit für Ihre Sicherheit
Hört nur! Ich glaube ich rieche etwas  |
|
|
Nach oben |
|
 |
 Abenteurer

Mit dabei seit Ende 2007 Wohnort: Norge Status: Urlaub
| Fahrzeuge 1. Toyota Hilux Arctic Trucks 37" 3. Unimog U1750L 4. Volvo TGB 11/11 Panzerjäger 5. Volvo BV202 |
|
Verfasst am: 13.07.2011 14:21:25 Titel: |
|
|
Flashi.....jetzt wird mir so einiges klar.
Du musst jetzt nicht betrübt sein, aber ich meine vor kurzem in einem Artikel gelesen zu haben,
daß es mit einer neuartigen Behandlungsmethode vielversprechene Erfolge gegeben hat.
Es besteht also die Hoffnung, daß es heilbar ist.
All unsere Gebete werden dich begleiten.
Komm zu uns zurück.
Christian | |
|
|
Nach oben |
|
 |
 Frauenversteher 1. Güte


Mit dabei seit Ende 2006 Wohnort: Spreewald Status: Verschollen
| Fahrzeuge 1. Pajero L040 2. Samurai 3. Laguna 2 |
|
Verfasst am: 13.07.2011 14:26:44 Titel: |
|
|
jetzt kann ich nicht anders!!
 | |
|
|
Nach oben |
|
 |
 benachbarter Haubenpopper


Mit dabei seit Mitte 2005 Wohnort: Bayern
| Fahrzeuge 1. 90er TD5  2. Discovery 3  3. Audi A3 2.0TDI quattro  4. Audi A4 2.0TDI Allroad  5. ZAR57  |
|
Verfasst am: 13.07.2011 14:29:39 Titel: |
|
|
flashi, dreh halt den monitor um!!  | _________________ ...wer ohne Narrheit lebt ist nicht so weise wie er glaubt!! :-)
..............................
 |
|
|
Nach oben |
|
 |
 Offroader


Mit dabei seit Ende 2010 Wohnort: Zwickau Status: Verschollen
| Fahrzeuge 1. Mitsubishi Colt Rallyeauto 2. ex Hyundai Galloper 3. Pajero V60 3,2 |
|
Verfasst am: 13.07.2011 17:12:21 Titel: |
|
|
NIEMAND mag Klugscheisser ! ! | _________________ mfg Sebastian |
|
|
Nach oben |
|
 |
 Standgasstuntman


Mit dabei seit Mitte 2005 Wohnort: Dreiländereck NRW / Hessen / Rheinland-Pfalz
| Fahrzeuge 1. W906 Campulance  2. Suzuki Vitara 1.6 DDiS  3. Samurai HardTop  |
|
Verfasst am: 13.07.2011 18:10:25 Titel: Re: Flashis little Helper - Alltagsprobleme schnell gelöst |
|
|
flashman hat folgendes geschrieben: |
Eine weitere effiziente Lösung für ein häufiges Alltagsproblem, mit dem jeder von uns schnell konfrontiert werden könnte.  |
Ich hätte einfach die Spaltenüberschriften getauscht  | _________________ Gruß ........................
Henning
"Ich will schlafend sterben,wie mein Opa; und nicht kreischend und schreiend wie sein Beifahrer "
Ich bin nur verantwortlich für das was ich schreibe, nicht für das was du daraus liest. |
|
|
Nach oben |
|
 |
 Erntehelfer


Mit dabei seit Mitte 2005 Wohnort: Zurich Status: Verschollen
| Fahrzeuge 1.  Land Rover Defender TD5 2.  Fahrrad |
|
Verfasst am: 13.07.2011 18:14:31 Titel: |
|
|
bin jetzt nicht so der sql profi, aber:
Code: | alter table tabelle change vorname name; |
usw...
ps: henning war schneller... | _________________ Panamericana von Nord nach Sued. Start: May 2017
granviaje.ch |
|
|
Nach oben |
|
 |
 Vertikalzeppelin, erdgebunden


Mit dabei seit Mitte 2005 Wohnort: Limbach-Oberfrohna Status: Offline
...und hat diesen Thread vor 5150 Tagen gestartet!
| Fahrzeuge 1. Landcruiser HZJ105  2. Volvo XC90  3. Mitsubishi Pajero V60 3.2DI-D 4. Opel Monty 3.5 V6 LPG  5. Air Patrol 2.0 Rallye  |
|
Verfasst am: 13.07.2011 19:11:57 Titel: |
|
|
Wären auch drei Arbeitsschritte (mit nötigm Temp-Namen), weil die Spaltennamen ja gegenläufig sind. Meine Version machts mit einem Statement.  | _________________ Leben ist draußen. Denn wer das Abenteuer sucht, darf den Luxus nicht fürchten.
 |
|
|
Nach oben |
|
 |
 Abenteurer

Mit dabei seit Ende 2007 Wohnort: Norge Status: Urlaub
| Fahrzeuge 1. Toyota Hilux Arctic Trucks 37" 3. Unimog U1750L 4. Volvo TGB 11/11 Panzerjäger 5. Volvo BV202 |
|
Verfasst am: 13.07.2011 19:55:26 Titel: |
|
|
@flashi
gehen wir mal von einer durchschnittlichen Tabellengröße von 30-50GByte aus.
Dann werden bei deinem Statement völlig unnötig die ganzen Daten durch die Datenbank gekübelt.
Beim Alter-Table werden dagegen nur ein paar Bytes bewegt.
Gruß
Christian | |
|
|
Nach oben |
|
 |
 Vertikalzeppelin, erdgebunden


Mit dabei seit Mitte 2005 Wohnort: Limbach-Oberfrohna Status: Offline
...und hat diesen Thread vor 5150 Tagen gestartet!
| Fahrzeuge 1. Landcruiser HZJ105  2. Volvo XC90  3. Mitsubishi Pajero V60 3.2DI-D 4. Opel Monty 3.5 V6 LPG  5. Air Patrol 2.0 Rallye  |
|
Verfasst am: 13.07.2011 20:00:34 Titel: |
|
|
Unwahrscheinlich, oder?
30 Gybte ist wohl mehr als "der Durchschnitt". Welche Tabelle mit Namen sollte so groß sein?  | _________________ Leben ist draußen. Denn wer das Abenteuer sucht, darf den Luxus nicht fürchten.
 |
|
|
Nach oben |
|
 |
 Abenteurer

Mit dabei seit Ende 2007 Wohnort: Norge Status: Urlaub
| Fahrzeuge 1. Toyota Hilux Arctic Trucks 37" 3. Unimog U1750L 4. Volvo TGB 11/11 Panzerjäger 5. Volvo BV202 |
|
Verfasst am: 13.07.2011 20:09:59 Titel: |
|
|
@flashi
Ich gehe mal davon aus, das deine Kommandos ja nicht nur für eine kleine Namensdatenbank für Verwaltung des Freundeskreises
gedacht war.
Nehmen wir als Alternative mal eine Datenbank in einem mittelständischen Unternemen das Küchen produziert und in dieser Tablle
die Kommisionierungsdaten für einen Küchenauftrag verwaltet.Gehen wir weiter davon aus, daß dieses Unternehmen ca. 2000 Küchen
pro Tag produziert.
Da kommen 30GByte schnell zusammen.
Ich wollte nur darauf hinweisen, daß es manchmal sinnvoller ist eine Datenbankänderung mit 3 Kommandos zu machen, als mit einem.
Die Datenbank steht einem Kunden dann wesentlich schneller wieder zur Verfügung.
Obige Annahmen sind übrigens der Realität entnommen.
Gruß
Christian | |
|
|
Nach oben |
|
 |
 Vertikalzeppelin, erdgebunden


Mit dabei seit Mitte 2005 Wohnort: Limbach-Oberfrohna Status: Offline
...und hat diesen Thread vor 5150 Tagen gestartet!
| Fahrzeuge 1. Landcruiser HZJ105  2. Volvo XC90  3. Mitsubishi Pajero V60 3.2DI-D 4. Opel Monty 3.5 V6 LPG  5. Air Patrol 2.0 Rallye  |
|
Verfasst am: 13.07.2011 20:13:31 Titel: |
|
|
An welcher Stelle hast Du den Faden verloren hinsichtlich "dies ist ein Spassthema"?
Du kannst nicht immer die DB alterieren, wenn Du nicht vorher die komplette Applikation betrachtest, die darauf zugreift. Arbeitet diese mit z.B. numerischen Indizies, ists nach dieser Änderung vorbei.
Zudem normalisiert man in der Regel Datenstrukturen und arbeitet mit Referenzen. Da kommt so schnell keine 30 GB Adresstabelle zusammen. | _________________ Leben ist draußen. Denn wer das Abenteuer sucht, darf den Luxus nicht fürchten.
 |
|
|
Nach oben |
|
 |
 Abenteurer

Mit dabei seit Ende 2007 Wohnort: Norge Status: Urlaub
| Fahrzeuge 1. Toyota Hilux Arctic Trucks 37" 3. Unimog U1750L 4. Volvo TGB 11/11 Panzerjäger 5. Volvo BV202 |
|
Verfasst am: 13.07.2011 20:57:55 Titel: |
|
|
waren halt nur meine zwei Cent bzgl ein Kommando im Vergleich zu drei. | |
|
|
Nach oben |
|
 |
 Vertikalzeppelin, erdgebunden


Mit dabei seit Mitte 2005 Wohnort: Limbach-Oberfrohna Status: Offline
...und hat diesen Thread vor 5150 Tagen gestartet!
| Fahrzeuge 1. Landcruiser HZJ105  2. Volvo XC90  3. Mitsubishi Pajero V60 3.2DI-D 4. Opel Monty 3.5 V6 LPG  5. Air Patrol 2.0 Rallye  |
|
Verfasst am: 13.07.2011 21:14:01 Titel: |
|
|
ChristianAC hat folgendes geschrieben: | waren halt nur meine zwei Cent bzgl ein Kommando im Vergleich zu drei. |
Da liegst Du auch 1:0 vorne
Ich kam heute nur auf die Idee für diesen Gag, weil ich mir bei nem echten DB Problem stundenlang den Kopf zerbrochen hab  | _________________ Leben ist draußen. Denn wer das Abenteuer sucht, darf den Luxus nicht fürchten.
 |
|
|
Nach oben |
|
 |
|