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