2013-11-24 3 views

ответ

11

См. Следующий ответ; это устаревший.


Поддержка

DROP TABLE IF EXISTS tablename; 

был добавлен в PostgreSQL 8.2. Redshift - очень сильно модифицированная вилка 8.1 от ParAccel, и насколько я знаю, они внесли очень мало изменений в более новые версии. Очень маловероятно, что он поддерживает IF EXISTS; вам, вероятно, нужно выполнить запрос каталога, чтобы определить, существует ли таблица, просмотрев information_schema, а затем решив, создадите ли вы ее на основе результата.

+0

Эта функция поддерживается, см. Мой ответ ниже –

16

Это поддерживается в последней версии Redshift:

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

IF EXISTS пункт, который указывает, что, если указанная таблица не существует, то команда не должна вносить изменения и возвращать сообщение о том, таблица не существует, а не заканчивается с ошибкой.

Этот раздел полезен при написании сценариев, поэтому сценарий не сбой, если DROP TABLE выполняется против несуществующей таблицы.

Взятый с online AWS Redshift docs.

+1

Приятно видеть, что они все еще работают над совместимостью с Pg. –

+2

Это должен быть принятый ответ. – Kerr

Смежные вопросы