Re: [GENERAL] UPDATE ... ON CONFLICT DO NOTHING
От | Alexander Farber |
---|---|
Тема | Re: [GENERAL] UPDATE ... ON CONFLICT DO NOTHING |
Дата | |
Msg-id | CAADeyWhNYKZ2TFn7zcsbQqZGV0TiUZkLvsJrWnre+oNguqeW6g@mail.gmail.com обсуждение исходный текст |
Ответ на | [GENERAL] UPDATE ... ON CONFLICT DO NOTHING (Alexander Farber <alexander.farber@gmail.com>) |
Ответы |
Re: [GENERAL] UPDATE ... ON CONFLICT DO NOTHING
Re: [GENERAL] UPDATE ... ON CONFLICT DO NOTHING |
Список | pgsql-general |
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;
-- 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;
В списке pgsql-general по дате отправления: