2013-04-23 6 views
1

У меня есть очень простой запрос:PostgreSQL ошибка: синтаксическая ошибка или вблизи «существует»

DROP TYPE IF EXISTS abc; 

При запуске на моей локальной машине, все хорошо. При запуске на моей рабочей машине, она возвращает:

ERROR: syntax error at or near "EXISTS" at character 14 

Я попытался ввести его, а вручную, чем копирование, чтобы убедиться, что нет никаких скрытых символов где-то, но я не могу понять, как это может дал ошибку в одном место, но не в другом.

+0

проверить версии postgres на клиенте и сервере – Satya

+1

** Всегда указывайте свою версию PostgreSQL в вопросах **. Вероятно, вам необходимо обновить PostgreSQL; вы почти наверняка находитесь на очень старой и неподдерживаемой версии. См. Http://www.postgresql.org/support/versioning/. Чем дольше вы задерживаете обновление, тем более болезненным оно будет. Прочтите примечания к выпуску для каждой версии .0 между вашими и текущей версией для консультаций по обновлению. –

ответ

3

Проверьте версии, которые вы используете, как для местного, так и для производства.

Предложение if exists было добавлено к drop type в 8.2.

И, прежде, чем кто-либо спрашивает, почему он жалуется на exists, а не if, это потому, что заявление:

drop type if 

отлично действует до того момента, как попытка уронить if типа. После этого происходит только exists, что делает синтаксис плохим.

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