From: | Jan de Visser <jan(at)de-visser(dot)net> |
---|---|
To: | pgsql-hackers(at)postgresql(dot)org, bxzhai2010(at)gmail(dot)com |
Cc: | Kang Yuzhe <tiggreen87(at)gmail(dot)com> |
Subject: | Re: SQL MERGE patches for PostgreSQL Versions |
Date: | 2017-06-22 16:52:13 |
Message-ID: | 4795431.PBk6rcHhN1@coyote |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
On Thursday, June 22, 2017 12:32:14 PM EDT Kang Yuzhe wrote:
> Here is a sample what I did after applying the patch.
>
> testdb=# BEGIN;
> BEGIN
> testdb=#
> testdb=# MERGE INTO Stock USING Buy ON Stock.item_id = Buy.item_id
> testdb-# WHEN MATCHED THEN UPDATE SET balance = balance + Buy.volume
> testdb-# WHEN NOT MATCHED THEN DO NOTHING;
> MERGE 1
> testdb=# SELECT * FROM Stock;
> item_id | balance
> ---------+---------
> 20 | 1900
> 10 | 3200
> (2 rows)
>
> testdb=# ROLLBACK;
> ROLLBACK
I am not quite sure what you're trying to achieve, but are you aware that
pgsql 9.6 introduced the ON CONFLICT clause, which allows you to do the same
with a different syntax?
https://www.postgresql.org/docs/9.6/static/sql-insert.html
Look for ON CONFLICT.
From | Date | Subject | |
---|---|---|---|
Next Message | Kang Yuzhe | 2017-06-22 17:00:50 | Re: SQL MERGE patches for PostgreSQL Versions |
Previous Message | Andres Freund | 2017-06-22 16:50:48 | Re: lseek/read/write overhead becomes visible at scale .. |