From: | Chris <dmagick(at)gmail(dot)com> |
---|---|
To: | Jorge Godoy <jgodoy(at)gmail(dot)com> |
Cc: | PostgreSQL General ML <pgsql-general(at)postgresql(dot)org> |
Subject: | Re: Best approach for a "gap-less" sequence |
Date: | 2006-08-14 06:01:28 |
Message-ID: | 44E011B8.90602@gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-general |
Jorge Godoy wrote:
> Jorge Godoy <jgodoy(at)gmail(dot)com> writes:
>
>> Is there a better way to guarantee that there will be no gaps in my sequence
>> if something goes wrong with my transaction?
>
>>From the overwhelming feedback I assume there isn't a better way yet...
> Thanks. I'll see how I can improve the model then to separate these sequences
> into different tables.
>
I'm not sure what type of lock you'd need to make sure no other
transactions updated the table (see
http://www.postgresql.org/docs/8.1/interactive/sql-lock.html) but "in
theory" something like this should work:
begin;
select id from table order by id desc limit 1;
insert into table (id, blah) values (id+1, 'blah');
commit;
P.S. I'm sure in older versions this query wouldn't use an index:
select max(id) from table;
I'm not sure about 8.0+.. hence doing an order by the id desc limit 1.
--
Postgresql & php tutorials
http://www.designmagick.com/
From | Date | Subject | |
---|---|---|---|
Next Message | Chris | 2006-08-14 06:32:08 | Re: User can not more login |
Previous Message | Chris | 2006-08-14 00:23:05 | Re: How to use the full text index feature on PostgreSQL |