Синтаксическая ошибка ON CONFLICT в Postgres 9.5.0

В документации Postgres INSERT есть пример использования ON CONFLICT:

INSERT INTO distributors (did, dname) VALUES (7, 'Redline GmbH')
ON CONFLICT (did) DO NOTHING;

Я пробую то же самое:

INSERT INTO name_map VALUES ('key_value', 'val1','val2') 
ON CONFLICT (key_column) DO NOTHING;

Но получите ОШИБКУ: синтаксическая ошибка в или около «ВКЛ».

Что мне не хватает?

postgres --version
> 9.5.0

person frankhond    schedule 20.01.2016    source источник
comment
Вы действительно используете PostgreSQL 9.5? У вас может быть установлено несколько версий.   -  person rightfold    schedule 20.01.2016
comment
Звучит так, как будто вы не подключены к серверу Postgres 9.5. Опубликовать вывод select version()   -  person a_horse_with_no_name    schedule 20.01.2016
comment
Индексируется ли key_column?   -  person Makoto    schedule 20.01.2016
comment
Вы можете дважды проверить, что вы подключены к серверу 9.5 с помощью SELECT version()   -  person pozs    schedule 20.01.2016
comment
select version() показывает, что на самом деле работает сервер 9.4.5. Видимо есть проблема при запуске postgres. Я отредактирую вопрос. Спасибо!   -  person frankhond    schedule 20.01.2016
comment
См. этот вопрос о том, как это сделать в Postgres ‹ 9.5: stackoverflow.com/questions/17267417/   -  person Innokenty    schedule 20.07.2016


Ответы (1)


Как отметили несколько человек в комментариях, оказывается, работает не та версия postgres.

select version()

в psql это выявил.

Где-то в моей системе должна быть спрятана старая установка 9.4.5.

person frankhond    schedule 20.01.2016