Re: Oracle to Postgres training at PGConf US

  • From: "Joshua D. Drake" <jd@xxxxxxxxxxxxxxxxx>
  • To: contact@xxxxxxxx, oracle-l@xxxxxxxxxxxxx
  • Date: Sun, 23 Jul 2017 17:29:19 -0700

On 07/22/2017 11:59 PM, Stefan Koehler wrote:

Hey JD,
to get back on a technical track and ignore all other on-going personal things 
here :-)

What do you think about this? 
https://twitter.com/FranckPachot/status/888867529954820097

This looks crazy to me (and possibly all other Oracle folks out there).


As a PostgreSQL person it makes sense to me and this is why:

Our first data set is:

1
0

Our first update sets the data to

0
1

Which means at the first update, there is no conflict and therefore the second update there is no conflict. However, when you try to update the data again:

update demo set n=n+1;

You are saying, set 0 = 1 and 1 = 2; The problem is that when you set 0 = 1, there is already a 1 in the tuple set. So you get a primary key violation.

It makes sense to me. I can see where someone would say... wait, what? You would assume that you could check the constraint at the end of the transaction. I would actually consider this a limitation of our primary keys as our other constraints (such as foreign keys) can be set deferred in which case a similar case would work.

Thanks,

JD




--
Command Prompt, Inc. || http://the.postgres.company/ ;|| @cmdpromptinc

PostgreSQL Centered full stack support, consulting and development.
Advocate: @amplifypostgres || Learn: https://pgconf.us
*****     Unless otherwise stated, opinions are my own.   *****
--
//www.freelists.org/webpage/oracle-l


Other related posts: