Archiv für den Tag: 5. Januar 2017

SQL: Records von einer Tabelle in eine andere verschieben

Alle Datensätze der Postgresql-DB „log_messages“, die älter als ein Jahr sind, sollen in eine Archiv-Tabelle (gleiche Struktur, „log_messages_archive“) verschoben werden:

WITH moved_rows AS (
    DELETE FROM log_messages a
    WHERE log_time < now() - interval '366 days'
    RETURNING a.*
)
INSERT INTO log_messages_archive
SELECT * FROM moved_rows;