2017-02-06 5 views
0

Ich möchte Spalten in einer Tabelle in eine andere Tabelle aufteilen und einen Fremdschlüssel verwenden, um die Zeile in der ursprünglichen Tabelle auf die neue Tabelle zu verweisen.Aktualisierungsspalte mit Rückgabewert

Wie kann ich die Spaltendaten in die andere Tabelle kopieren und jede Zeile mit der zurückgegebenen Identität aus der Einfügung in die neue Tabelle aktualisieren?

Heres, was ich habe, so weit:

insert into tbl_2(col_6,col_7) select col_2, col_3 from tbl_1 returning col_5 

Ich Postgres eine meiner DB verwenden.

+1

Können Sie Ihre Frage bearbeiten und Beispieldaten und gewünschte Ergebnisse bereitstellen. –

Antwort

0

Sie können dies in einem CTE tun. Wenn ich richtig verstehe:

with i as (
     insert into tbl_2(col_6,col_7) 
      select col_2, col_3 
      from tbl_1 
     returning tbl_2_id 
    ) 
update tbl_1 
    set tbl_2_id = i.tbl_2_id 
    from i 
    where tbl_1.col_6 = i.col_6 and tbl_1.col_7 = i.col_7; 
0

Am Ende habe ich nur noch eine temporäre Spalte in die neue Tabelle und hinzugefügt, um den Primärschlüssel aus der ersten Tabelle und hat eine zweite Update-Anweisung jeden Fremdschlüssel zurück in die erste Tabelle hinzufügen .

Verwandte Themen