Re: [GENERAL] UPDATE ... ON CONFLICT DO NOTHING

Поиск
Список
Период
Сортировка
От Alexander Farber
Тема Re: [GENERAL] UPDATE ... ON CONFLICT DO NOTHING
Дата
Msg-id CAADeyWgoMhXeJwihy2XDne57a54eYewrmw5o9+gKpMcqjjSBqw@mail.gmail.com
обсуждение исходный текст
Ответ на Re: [GENERAL] UPDATE ... ON CONFLICT DO NOTHING  (Adrian Klaver <adrian.klaver@aklaver.com>)
Ответы Re: [GENERAL] UPDATE ... ON CONFLICT DO NOTHING  (Adrian Klaver <adrian.klaver@aklaver.com>)
Re: [GENERAL] UPDATE ... ON CONFLICT DO NOTHING  ("David G. Johnston" <david.g.johnston@gmail.com>)
Список pgsql-general
Hi Adrian -

On Tue, Mar 14, 2017 at 7:18 PM, Adrian Klaver <adrian.klaver@aklaver.com> wrote:
On 03/14/2017 09:00 AM, Alexander Farber wrote:
My initial idea has been not to use ON CONFLICT at all, but instead only
UPDATE the words_reviews records (set "uid" or "author" to out_uid) for
which NO EXISTS already such a record with PK (uid, author)... and then

I am afraid the logic is escaping me. If the record does not exist how can you UPDATE it?


here the table with reviews of users "uid" done by users "author":

CREATE TABLE words_reviews (
        uid integer NOT NULL CHECK (uid <> author) REFERENCES words_users ON DELETE CASCADE,
        author integer NOT NULL REFERENCES words_users(uid) ON DELETE CASCADE,
        nice integer NOT NULL CHECK (nice = 0 OR nice = 1),
        review varchar(255),
        updated timestamptz NOT NULL,
        PRIMARY KEY(uid, author)
);

Since I am merging user ids (from several to one), I need to change the records in the above table too.

I need to update the PK by changing either "uid" or "author".

But this might give me conflicts, because there might be such a PK already...

Regards
Alex

 

В списке pgsql-general по дате отправления:

Предыдущее
От: Stephen Frost
Дата:
Сообщение: Re: [GENERAL] Postgres backup solution
Следующее
От: Jeff Janes
Дата:
Сообщение: Re: [GENERAL] Table not cleaning up drom dead tuples