Ich habe zwei Tabellen: 1. create table table_1(col1 text,col2 text)
2. create table table_2(tcol1 character varying(5), tcol2 character varying(5))
. Tabelle_1 hat 50 Datensätze und Tabelle_2 ist leer. Ich muss diese Datensätze von Tabelle_1 zu Tabelle_2 laden, wenn die Länge von table_2.tcol1 < = Länge von table_1.col1 und Länge von table_2.tcol2 < = Länge von table_1.col2. Ich kann diese wie tun:postgresql- wählen Datensätze basierend auf Feldlänge innere Verbindung information_schema.columns
insert into table_2(tcol1,tcol2)
select col1,col2 from table_1
where char_length(col1) <=5 and char_length(col2) <=5
Aber in der Praxis Ich habe mehr als 100 Spalten. Gibt es eine Möglichkeit, dies zu erreichen, indem Sie Tabelle_1 mit information_schema.columns verbinden. Das Problem hier ist Spalten in Tabelle_1 sind Zeilen in information_schema.columns. Vielen Dank für Ihr Interesse an dieser Frage.
Dazu müssen Sie höchstwahrscheinlich eine Abfrage in eine Zeichenkette generieren und diese mit 'EXECUTE' ausführen. Wenn Sie 'CREATE TABLE' Befehle für beide Tabellen posten können, werde ich es mir ansehen. Weil ich von der Beschreibung über Strukturen nicht sicher bin. – JosMac
habe create commands – BenThomas
ok :-) Ich meinte echte Tabellen, aber macht nichts - siehe in der Antwort ... – JosMac