Search Postgresql Archives

Re: UPDATE ... ON CONFLICT DO NOTHING

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 03/14/2017 08:38 AM, Alexander Farber wrote:
Yes, Adrian -

On Tue, Mar 14, 2017 at 3:57 PM, Adrian Klaver
<adrian.klaver@xxxxxxxxxxx <mailto:adrian.klaver@xxxxxxxxxxx>> wrote:

    On 03/14/2017 07:23 AM, Alexander Farber wrote:


        in _uids array I have all user ids of player.

        I want to merge his or her data, including reviews, to a single
        user id:
        out_uid.

        So I make a copy of related words_reviews records (where this
        user has


    Alright I see that you are setting out_uid above the INSERT.
    So you are INSERTing rows and if they CONFLICT you leave them alone
    and have the DELETE remove them, correct?


that is correct and my question is:

copying records for later INSERT ON CONFLICT DO NOTHING seems
ineffective to me.

I would prefer to just use UPDATE (for changing "uid" or "author"
columns to out_uid value) - but how to handle the conflicts with UPDATE?

The more I think about it the more I think you are doing the same thing as INSERT ON CONFLICT DO UPDATE, where if there is a PK conflict you just want to update the values with data from excluded. There is inverse logic in the function that I have not wrapped my head around yet, so this is more a hunch then anything else.



Thank you
Alex

P.S. I have just donated 20 Euro to paypal@xxxxxxxxxxxxx
<mailto:paypal@xxxxxxxxxxxxx>



--
Adrian Klaver
adrian.klaver@xxxxxxxxxxx


--
Sent via pgsql-general mailing list (pgsql-general@xxxxxxxxxxxxxx)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-general



[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Postgresql Jobs]     [Postgresql Admin]     [Postgresql Performance]     [Linux Clusters]     [PHP Home]     [PHP on Windows]     [Kernel Newbies]     [PHP Classes]     [PHP Books]     [PHP Databases]     [Postgresql & PHP]     [Yosemite]
  Powered by Linux