Problem mit SELECT * INTO table

Hallo,

habe jetzt längere Zeit gesucht, aber finde dazu nicht wirklich was.
Ich möchte aus einer Select-Abfrage eine Tabelle erstellen. Dies geht ja normalerweise mit dem Befehl

SELECT * INTO ziel_tabelle FROM quell_tabelle

Jetzt soll diese Tabelle jedoch ab und an neu geschrieben werden. Gibt es dazu auch sowas wie

SELECT * UPDATE ziel_tabelle FROM quell_tabelle

? Oder muss ich mir eine Funktion basteln, die mir zunächst die Tabelle löscht und dann das

SELECT INTO

ausführt?
Das eigentliche Statement dieht wie folgt aus:

SELECT k.column_name, cl.relname, con.contype, con.conrelid, con.confrelid
    INTO rec_meta_info
    FROM pg_constraint con, pg_class cl, information_schema.key_column_usage k,
        information_schema.table_constraints t
    WHERE
        cl.oid=con.conrelid AND
        k.constraint_name=con.conname AND
        k.table_name=t.table_name AND
        k.constraint_name=t.constraint_name

Vielen Dank schon mal.

Gruß,
Markus

Warum nicht einen VIEW? Dein Select unten schreit geradezu nach einem VIEW…

Andreas

Das ging ja schnell…
Ich habe das zuerst auch mit einer View geregelt gehabt. Allerdings ist diese Abfrage recht zeitaufwendig. Ein EXPLAIN ANALYZE der SELECT-Abfrage hat teilweise Zeiten von 200ms. Und das ist recht viel. Wenn ich das nun in einer Tabelle speichere liegt die benötigte Zeit bei ca 0,2ms.

Ah, okay. Nun, dann DROPe halt die Tabelle und erstelle sie neu. Innerhalb einer TX.

Andreas