Help with seq numbers...

Поиск
Список
Период
Сортировка
От Cristian Prieto
Тема Help with seq numbers...
Дата
Msg-id 023801c512d9$f7d7b7c0$6e00a8c0@gt.ClickDiario.local
обсуждение исходный текст
Ответы Re: Help with seq numbers...  (Thomas F.O'Connell <tfo@sitening.com>)
Re: Help with seq numbers...  (Bruno Wolff III <bruno@wolff.to>)
Список pgsql-general
Hello, thanks a lot for your help and sorry for my newbie questions...
 
I have the following SP:
It is indexed by iduser (a primary key)
 
CREATE FUNCTION store_users(name varchar, lastname varchar) RETURNS integer AS
$body$
DECLARE
    userid INTEGER := nextval('this_is_a_sequence');
BEGIN
      BEGIN
            INSERT INTO mytable (iduser, firstname, lname) VALUES (userid, name, lastname);
      EXCEPTION
            WHEN UNIQUE_VIOLATION THEN
                RETURN 0;
      END;
      RETURN userid;
END;
$body$
LANGUAGE plpgsql;
 
And it is working fine, but when I get a Unique_Violation (cuz there is a iduser already) the sequence still advance to the next value. There is any way to rollback or avoid holes in the sequence? I've read the manual and it says that nextval and currval could not be rolled back, that means that there is no way to avoid that trouble?
 
Sorry for my bad english and thanks again...
 

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

Предыдущее
От: Jeff Davis
Дата:
Сообщение: Re: More info about PostgreSQL 8
Следующее
От: Thomas F.O'Connell
Дата:
Сообщение: Re: Help with seq numbers...