Re: SQL MERGE patches for PostgreSQL Versions

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.

In response to

Responses

Browse pgsql-hackers by date

  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 ..