I have come up with the following (when trying to merge array _uids to a single out_uid):
-- try to copy as many reviews of this user as possible INSERT INTO words_reviews ( uid, author, nice, review, updated ) SELECT out_uid, author, nice, review, updated FROM words_reviews WHERE uid <> out_uid AND uid = ANY(_uids) ON CONFLICT DO NOTHING; DELETE FROM words_reviews WHERE uid <> out_uid AND uid = ANY(_uids); -- try to copy as many reviews by this user as possible INSERT INTO words_reviews ( uid, author, nice, review, updated ) SELECT uid, out_uid, nice, review, updated FROM words_reviews WHERE author <> out_uid AND author = ANY(_uids) ON CONFLICT DO NOTHING;