srob: Herr im Himmel!

Beitrag lesen

Moin!

7.

Die LETZTEN 10 Einträge (Nach ID,  wobei nicht mehr alle ID's vorhanden sind)
von Tabelle a_table nach b_table kopieren.
Die Schierigkeit liegt darin, dass die Felder in b_table anders heissen als in a_table.

Was ist denn daran schierig? Dann benennt man eben die betroffenen Spalten:

INSERT INTO b_table (bid,bcol1,bcol2,...)
  SELECT aid,acol1,acol2,...
      FROM a_table
      ORDER BY bid DESC LIMIT 0,10

Was passiert wenn ID's doppelt vorhanden wären nach dem kopieren?

Ich würde vor der eigentlichen Antwort auf die mangelnde Kompetenz des Aufgabenstellers hinsichtlich hinreichender Systembeschreibungen hinweisen und zur Vermeidung zukünftiger Wissensdefizite der Studierenden eine Entfernung des Subjektes aus dem Lehrbetrieb empfehlen. Da keine Aussage zu den Eigenschaften der ID in b_table gemacht wurden [1], bastelst Du Dir eine Antwort nach Gusto:

  • bid ist eine "nackte" Spalte ohne UNIQUE index oder PRIMARY KEY: Was soll passieren - die DS werden eingefügt.
  • bid ist UNIQUE index oder PRIMARY KEY: DS mit doppelter ID wären nach dem Kopieren nicht vorhanden, da sie nicht kopiert werden. Oder eine andere Antwort, wenn die ebenfalls nicht beschriebene MySQL-Version es hergibt und man beim INSERT die Klausel ON DUPLICATE KEY verwendet.

Da es Hausaufgabe ist muss es besonders richtig sein.

Hat der Prof vielleicht auch darauf hingewiesen, daß die besonderes richtigen Antworten von jenen kommen sollten, denen die Aufgaben gestellt wurden? Was hält der Prof wohl von seinen Studenten, wenn er Fragen wie #3, #4 oder #8 stellt? Mir dämmert, daß er ahnt, wen er da vor sich hat. Wahrscheinlich werden sich in der Abschlußprüfung solche Aufgabenkomplexe finden:

#1 Zähle alle Buchstaben in "MySQL"!
#2 Welche MySQL-Version hat die kleiner Versionsnummer: 4.1.0 oder 3.23.0?
#3 Steht das Akronym "SQL" am Beginn oder am Ende von "MySQL"?

Mein lieber Schwan! Was Du hier in den letzten Tagen abziehst, gibt mir ein richtig gutes Gefühl für die Zukunft... Und dabei kann einem jetzt bereits der Gedanke kommen, daß es in unserem Land von Verpissern und Opportunisten nur so wimmelt; wie soll das erst werden, wenn Leute Deines Schlages durchkommen? Dieser Nation wäre sehr gedient, wenn Du das Studium drangibst und in einen Bereich gehst, wo die Ergebnisse Deiner Arbeit ganz sicher keinerlei Auswirkungen auf die Gesellschaft haben werden. Du könntest zum Beispiel Fallberater beim Arbeitsamt werden.

hth Robert

P.S. An den Rest der Welt: es tut mir leid, wenn ich bei derartigen Vorkommnissen aus der Haut fahre, aber ich kann das einfach nicht immer runterschlucken... So kann ich wenigstens ohne Galle auf der Zunge in den Tag gehen.

[1] Nein, ich bin nicht der Meinung, daß die Bezeichnung "ID" irgendeine Information bezüglich der Spalteneigenschaften enthielte. Mir ist keine entsprechende normative Vorgabe bekannt, nicht mal ein Usus unter den SQL-Anwendern.