2017-02-04 19 views

ответ

5

Нет команды Amazon Redshift, эквивалентной ADD COLUMN IF NOT EXISTS.

См: ALTER TABLE documentation

Чтобы повторить эту функцию, приложение в первую очередь необходимо запросить метаданные таблицы, а затем принять решение о выдаче команды ADD COLUMN.

0

Ответ Джона поставил меня в правильном направлении, вот команда, которую я нашел лучшей в Redshift, чтобы проверить существование столбца.

SELECT EXISTS(
    SELECT * FROM pg_table_def 
    WHERE schemaname = '<my_schema_name>' 
    and tablename = '<my_table_name>' 
    and "column" = '<my_column_name>' 
); 

Обратите внимание на двойные кавычки «столбец» требуется, поскольку column также ключевое слово.

Кроме того, если таблица вас интересует не в схеме public. Вы, возможно, потребуется изменить первый свой путь поиска, так что результаты будут возвращены, как и ожидалось:

set SEARCH_PATH to <schema_name>; 

Смотрите PG_TABLE_DEF AWS Docs для более подробной информации.