Erstellen Sie eine temporäre Tabelle aus einer Auswahl oder einfügen, wenn die Tabelle bereits vorhanden ist
Was ist der beste Weg, um erstellen Sie eine temporäre Tabelle, wenn es nicht bereits vorhanden ist, und fügen Sie die ausgewählten Zeilen?
Können Sie ein upgrade auf 9.1 oder später? Diese Versionen unterstützen
Nein, ich kann nicht. :S
Sie wissen, dass 8.4 wird de-unterstützte Mitte des nächsten Jahres? Sie planen, sollten Sie ein upgrade sowieso: postgresql.org/support/versioning
Ofc-ich weiß, ich zahlen für das hosting, also vermute ich, dass Sie ein upgrade der version so schnell wie möglich. Hängt nicht von mir...
create table .. if not exists
Nein, ich kann nicht. :S
Sie wissen, dass 8.4 wird de-unterstützte Mitte des nächsten Jahres? Sie planen, sollten Sie ein upgrade sowieso: postgresql.org/support/versioning
Ofc-ich weiß, ich zahlen für das hosting, also vermute ich, dass Sie ein upgrade der version so schnell wie möglich. Hängt nicht von mir...
InformationsquelleAutor inf3rno | 2013-09-17
Du musst angemeldet sein, um einen Kommentar abzugeben.
CREATE TABLE
ist der einfachste und Schnellste Weg:
Nicht sicher, ob die Tabelle bereits vorhanden ist
CREATE TABLE IF not EXISTS ...
wurde eingeführt in version Postgres 9.1.Für ältere Versionen verwenden Sie die Funktion in diesem Zusammenhang zu beantworten:
PostgreSQL create table if not exists
Dann:
Chancen sind, etwas ist schief in Ihrem code, wenn der temp Tabelle bereits vorhanden ist. Stellen Sie sicher, dass Sie keine doppelten Daten in der Tabelle oder so etwas. Oder betrachten Sie den folgenden Absatz ...
Eindeutige Namen
Temporäre Tabellen werden nur sichtbar innerhalb der aktuellen Sitzung (nicht zu verwechseln mit der Transaktion!). Also der name der Tabelle dürfen keine Konflikte mit anderen sessions.
Wenn Sie müssen eindeutige Namen in Ihrer Sitzung, Sie könnte verwenden dynamisches SQL und nutzen eine
SEQUENCE
:Einmal erstellen:
Könnte man eine
DO
- Anweisung (oder einer plpgsql-Funktion):lastval()
undcurrval(regclass)
maßgeblich sind in diesem Fall, um den Namen tatsächlich verwendet.InformationsquelleAutor Erwin Brandstetter