2013-11-24 6 views

Antwort

11

Siehe nächste Antwort; Dies ist veraltet.


Unterstützung für

DROP TABLE IF EXISTS tablename; 

wurde in PostgreSQL 8.2 hinzugefügt. Redshift ist eine sehr stark modifizierte Fork von 8.1 von ParAccel, und soweit ich weiß, haben sie sehr wenige Änderungen von neueren Versionen zurückportiert. Es ist sehr unwahrscheinlich, dass es unterstützt IF EXISTS; Sie müssen wahrscheinlich eine Katalogabfrage durchführen, um festzustellen, ob die Tabelle existiert, indem Sie information_schema nachschlagen und dann entscheiden, ob Sie sie basierend auf dem Ergebnis erstellen.

+0

Diese Funktion wird unterstützt, siehe meine Antwort unter –

16

Dies ist in der neuesten Version von Redshift unterstützt:

DROP TABLE [ IF EXISTS ] name [, ...] [ CASCADE | RESTRICT ] 

IF EXISTS-Klausel, die die Tabelle, wenn der angegebene gibt nicht vorhanden sind, sollte der Befehl keine Änderungen vornehmen und eine Nachricht zurück, die Die Tabelle existiert nicht, anstatt mit einem Fehler zu enden.

Diese Klausel ist beim Erstellen von Skripten hilfreich, daher schlägt das Skript nicht fehl, wenn DROP TABLE für eine nicht vorhandene Tabelle ausgeführt wird.

Von online AWS Redshift docs übernommen.

+1

Gut zu sehen, sie arbeiten immer noch an der Kompatibilität mit Pg. –

+2

Dies sollte die akzeptierte Antwort sein. – Kerr

Verwandte Themen