It's hard to follow how the 2 videos relate, because you don't run the same SQL both places. You first update where i = 2 in Postgres and i = 1 in Oracle.
On Thu, Dec 21, 2017 at 4:37 AM, Hans Schou <hans.schou@xxxxxxxxx> wrote:
hansbest regardsOracle: https://youtu.be/l2IGoaWql64The situation is a process which get a deadlock, but because it is a script, it sends a commit anyway. This is bad behavior by humans but that's how they are.During my preparation for describing what happens when two processes update the same row in a table, I came across that PostgreSQL is doing right and Oracle is doing it wrong.HiFYI - if it has any interestAfter both processes commit's the table should be:i | n---+---1 | 112 | 21in Oracle it is:PostgreSQL: https://youtu.be/rH-inFRMcvQi | n---+---1 | 112 | 22PostgreSQL:
A
select * from t;
begin;
update t set n=n+1 where i=2;
B
begin;
update t set n=n+1 where i=1;
update t set n=n+1 where i=2;
A
update t set n=n+1 where i=1;
B
commit;
A
commit;