Re: duplicates
| От | Michael Paesold |
|---|---|
| Тема | Re: duplicates |
| Дата | |
| Msg-id | 00ea01c4940d$59f54b30$ad01a8c0@zaphod обсуждение исходный текст |
| Ответ на | duplicates (Tsirkin Evgeny <tsurkin@mail.jct.ac.il>) |
| Ответы |
Unable to connect to a specific database
|
| Список | 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
В списке pgsql-admin по дате отправления: