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