Запрос на обновление Postgresql


person potapuff    schedule 08.09.2011    source источник
comment
нет, это не дубликат   -  person potapuff    schedule 09.09.2011


Ответы (1)


Ваш вопрос был предложен как дубликат, потому что решение для PostgreSQL, не имеющее команды UPSERT, уже было опубликовано, что действительно отвечает на ваш вопрос о том, как реализовать UPSERT.

Отвечая на ваш вопрос об ошибке синтаксиса, который вы пытаетесь сделать, в настоящее время невозможно. Вы обнаружите, что это возможно в следующей версии PostgreSQL 9.1, которая будет поддерживать операторы изменения данных в предложении WITH: http://www.postgresql.org/docs/9.1/static/query-with.html#QUERIES-WITH-MODIFYING

person Matt    schedule 09.09.2011
comment
Отвечая на ваш вопрос об ошибке синтаксиса, который вы пытаетесь сделать, в настоящее время невозможно. В порядке. Но почему? в документации к 8.4 написано Необязательное предложение RETURNING заставляет UPDATE вычислять и возвращать значение (я) на основе каждой фактически обновленной строки. Может быть вычислено любое выражение, использующее столбцы таблицы и / или столбцы других таблиц, упомянутых в FROM. Используются новые (после обновления) значения столбцов таблицы. Синтаксис списка RETURNING идентичен синтаксису списка вывода SELECT. но SELECT (UPDATE ... RETURNING ...) выдает синтаксическую ошибку - person potapuff; 12.09.2011
comment
Вопрос дублирует stackoverflow.com/questions/7191902/ - person potapuff; 12.09.2011