Ich möchte eine Zeile duplizieren und fügen Sie es in der gleichen Tabelle mit einigen neuen Werten. Problem ist, dass mein Tisch hat rund 50 Spalten, so dass meine Frage irgendwie dumm aussieht:duplizieren und eine Zeile mit einigen Änderungen einfügen
insert into DUMBTABLE (
, Col1
, Col2
, Col3
-- 47 rows to go...
.
.
, Col50) select 'new_val1'
,'new_val2'
, Col3
-- 47 rows to go again...
.
.
.
, Col50 from DUMBTABLE where Col1 = 'old_val'
Gibt es eine bessere Art und Weise dynamisch alle Spalten, zu erhalten und in der Lage sein, zu spezifizieren whice werden diejenigen mit neuen Werten aktualisiert werden? Danke
Ps: Ich werde diese Abfrage über php
ausführen. Eine gespeicherte Prozedur ist im Moment keine Option.
Das ist der Weg zu gehen. (Wie könnte jemand anders wissen, welche Spalten ersetzt/behalten werden?) Die Hauptfrage ist jedoch, warum Ihre Tabelle 50 Spalten hat? Schlecht gestaltete db? – jarlh
@jarlh ja die DB ist schlecht entworfen und es gibt nichts, was ich dagegen tun kann :( – RidRoid
Wenn Sie eine gespeicherte verwenden könnten Sie eine Prozedur, die eine dynamische SQL erstellt, um die Aufgabe zu tun, mit einigen Eingabeparametern sagen, welche Spalten Kopieren/Ändern Mit einem einfachen SQL glaube ich, dass Sie nicht können – Aleksej