web-dev-qa-db-ja.com

Amazon Redshift:存在する場合はテーブルを削除します

Redshiftは次と同等のステートメントをサポートしていますか?

DROP TABLE IF EXISTS tablename
14
Attilah

次の答えを参照してください。これは古いです。


へのサポート

DROP TABLE IF EXISTS tablename;

postgreSQL8.2で追加されました。 Redshiftは、ParAccelによって8.1の非常に大幅に変更されたフォークであり、私が知る限り、新しいバージョンからの変更はほとんどバックポートされていません。 IF EXISTSをサポートする可能性はほとんどありません。おそらく、カタログクエリを実行して、information_schemaを検索し、その結果に基づいてテーブルを作成するかどうかを決定して、テーブルが存在するかどうかを判断する必要があります。

15
Craig Ringer

これは、最新バージョンのRedshiftでサポートされています。

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

指定されたテーブルが存在しない場合、コマンドは変更を行わず、エラーで終了するのではなく、テーブルが存在しないというメッセージを返す必要があることを示すIFEXISTS句。

この句はスクリプトを作成するときに役立ちます。そのため、DROP TABLEが存在しないテーブルに対して実行されても、スクリプトは失敗しません。

オンラインAWS Redshiftドキュメント から取得。

25
mark.monteiro