Rollback locks table - why?

Поиск
Список
Период
Сортировка
От Jan Peters
Тема Rollback locks table - why?
Дата
Msg-id 20080320134208.42400@gmx.net
обсуждение исходный текст
Ответы Re: Rollback locks table - why?
Re: Rollback locks table - why?
Список pgsql-sql
Hello list,
I am a bit confused. See the code below:

BEGIN;
SAVEPOINT sp1;
INSERT INTO test(id,runde) VALUES(2, 0);
--if there is a unique key violstion:
ROLLBACK TO sp1;
UPDATE test  SET id = 1000 WHERE runde = 0;
COMMIT;

When I first run this statement, I do not get any error message, but also there's also no INSERT on table test. If I
runjust:
 

INSERT INTO test(id,runde) VALUES(2, 0);

on its own, it works. (i.e. I get a new row). If I run the transaction block from above again I get first a unique key
violation(that is ok, because that's what I trying to check for) but there is NO rollback to sp1, only the "Unique Key"
errormessage and after that I get the dreaded "current transaction is aborted" error message and the system reports an
EXCLUSIVELOCK on the table (<IDLE>in transaction).
 

Any ideas what I am doing wrong?

Using PostGreSQL 8.2.7 on Windows XP.

Regards and many thanks in advance
Jan
-- 
Psssst! Schon vom neuen GMX MultiMessenger gehört?
Der kann`s mit allen: http://www.gmx.net/de/go/multimessenger


В списке pgsql-sql по дате отправления:

Предыдущее
От: Craig Ringer
Дата:
Сообщение: Re: Select into
Следующее
От: "Jan Peters"
Дата:
Сообщение: Rollback locks table - why?