418 Stimmen

Wie kann ich Daten von einer Spalte in eine andere in derselben Tabelle kopieren?

Ist es möglich, Daten von Spalte A nach Spalte B für alle Datensätze einer Tabelle in SQL zu kopieren?

759voto

Ash Burlaczenko Punkte 23186

Wie wäre es damit

UPDATE table SET columnB = columnA;

Dadurch wird jede Zeile aktualisiert.

164voto

dev4092 Punkte 2542
UPDATE table_name SET
    destination_column_name=orig_column_name
WHERE condition_if_necessary

6voto

Vayuj Rajan Punkte 77

Dadurch werden alle Zeilen in dieser Spalte aktualisiert, wenn der abgesicherte Modus nicht aktiviert ist.

UPDATE table SET columnB = columnA;

Wenn der abgesicherte Modus aktiviert ist, müssen Sie eine Where-Klausel verwenden. Ich verwende Primärschlüssel als größer als 0 im Grunde alle aktualisiert werden

UPDATE table SET columnB = columnA where table.column>0;

3voto

Wenn Sie eine Spalte in eine andere Spalte mit einem anderen Datentyp in PostgresSQL kopieren wollen, müssen Sie zuerst in den Datentyp casten/konvertieren, sonst wird

Abfrage 1 ERROR: ERROR: Spalte "test_date" ist vom Typ timestamp ohne Zeitzone, aber Ausdruck ist vom Typ Zeichen variierend ZEILE 1: update table_name set test_date = date_string_col TIPP: Sie müssen den Ausdruck umschreiben oder umformen.

Ein Beispiel für die Umwandlung von varchar in timestamp:

update table_name set timestamp_col = date_string_col::TIMESTAMP;

Ein Beispiel für die Umwandlung von varchar in int:

update table_name set int_column = string_col::INTEGER;

aber jeder Spaltentyp (außer Datei o.ä.) kann in string( kopiert werden character varying ), ohne den Typ zu werfen.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X