Re: duplicates

From: "Michael Paesold" <mpaesold(at)gmx(dot)at>
To: "Tsirkin Evgeny" <tsurkin(at)mail(dot)jct(dot)ac(dot)il>
Cc: <pgsql-admin(at)postgresql(dot)org>
Subject: Re: duplicates
Date: 2004-09-06 12:30:52
Message-ID: 00ea01c4940d$59f54b30$ad01a8c0@zaphod
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-admin

Tsirkin Evgeny wrote:

> one moer question ,how did you tested it?
>
> > I have tested this here. I don't really know if this is just the case
with
> > Best Regards,
> > Michael Paesold

First I created the your schedule table. Then I opened two psql sessions...

Session A Session B

BEGIN;
SET TRANSACTION ISOLATION LEVEL SERIALIZABLE;
DELETE FROM schedule WHERE studentid = 1;
INSERT INTO schedule VALUES (1, 1, 0, 0);

BEGIN;
SET TRANSACTION ISOLATION LEVEL SERIALIZABLE;
DELETE FROM schedule WHERE studentid = 1;
-- if there existed records for this delete,
-- session B will now wait for session A to
-- commit/rollback and error out on commit;
-- otherwise no error

COMMIT;
INSERT INTO schedule VALUES (1, 1, 0, 0);
COMMIT;

You can also try and rollback the first transaction etc.

Again, what really helps is:
ALTER TABLE schedule ADD CONSTRAINT uniq_schedule UNIQUE (studentid,
groupid);

Best Regards,
Michael Paesold

In response to

Responses

Browse pgsql-admin by date

  From Date Subject
Next Message Andrei Bintintan 2004-09-06 14:03:02 How to rename a constraint/trigger??
Previous Message Tsirkin Evgeny 2004-09-06 12:10:09 Re: duplicates