different transaction handling between postgresql and oracle/mysql

From: Jörg Schulz <jschulz(at)sgbs(dot)de>
To: pgsql-general(at)postgresql(dot)org
Subject: different transaction handling between postgresql and oracle/mysql
Date: 2003-07-14 07:47:30
Message-ID: 200307140947.31193.jschulz@sgbs.de
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

Suppose the following:

create table test (a int primary key);
insert into test values (1);

select * from test;
a
=
1

In Postgresql if you do the following in a transaction (either with
autocommit=off or with an explizit begin):

insert into test values (2); -> ok
insert into test values (1); -> error (duplicate key)
insert into test values (3); -> error (transaction aborted)
commit;

You get:

select * from test;
a
=
1

In Oracle/MySQL if you do the same you get:

insert into test values (2); -> ok
insert into test values (1); -> error (duplicate key)
insert into test values (3); -> ok
commit;

select * from test;
a
=
1
2
3

Which behavior is right?
Is there a way to make Postgresql behave like the other databases?
Which other Databases act like Postgresql and which do it like Oracle/MySQL?

Jörg

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Francois Suter 2003-07-14 07:47:43 Re: Optimisation, index use question [long]
Previous Message Stephan Szabo 2003-07-14 07:39:51 Re: Fw: select null + 0 question