2016-12-29 2 views
0

В моей среде Postgres 9.6, когда я пытаюсь выполнить «MERGE INTO» запрос, он выдает мне следующее сообщение об ошибке:MERGE INTO не работает с Postgres 9.6

ERROR: syntax error at or near "MERGE" 
LINE 1: MERGE INTO Stock USING Buy ON Stock.item_id = Buy.item_id W... 
     ^

Похоже, он не поддерживает MERGE запрос. Однако, когда я делаю google, кажется, что MERGE поддерживается Postgres со версии 9.1.

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

Редактировать: Ниже приведены источники, откуда я нашел поддержку MERGE в Postgres.

https://wiki.postgresql.org/wiki/MergeTestExamples

+1

По этой ссылке вы публикуемую: ** Это никогда не была интегрирована в PostgreSQL, и требует значительной работы, чтобы быть производство качество ** –

+0

Возможный дубликат [Как UPSERT (MERGE, INSERT ... ON DUPLICATE UPDATE) в PostgreSQL?] (http://stackoverflow.com/questions/17267417/how-to-upsert-merge-insert-on -duplicate-update-in-postgresql) –

+0

Единственный auth источник для существования или синтаксиса утверждения - это [** руководство **] (https://www.postgresql.org/docs/current/static/index.html), а не какой-то случайный googling или wiki-страница, которая четко заявляет, что функциональность не интегрирована в Postgres –

ответ

0

MERGE ака INSERT ... ON CONFLICT DO NOTHING/UPDATE или UPSERT доступна только postgres 9.5 и позже:

Note: MERGE is often used interchangeably with the term UPSERT.

UPSERT functionality will be in the PostgreSQL 9.5 release -- see What's new in PostgreSQL 9.5 MERGE is not in 9.4.5 (the latest PostgreSQL release as of 2015-10-08)