Re: Numbering Rows (SEQUENCE, OID) questions

Поиск
Список
Период
Сортировка
От Stephan Szabo
Тема Re: Numbering Rows (SEQUENCE, OID) questions
Дата
Msg-id 20011216112020.D42764-100000@megazone23.bigpanda.com
обсуждение исходный текст
Ответ на Numbering Rows (SEQUENCE, OID) questions  (Terrence Brannon <metaperl@mac.com>)
Ответы Re: Numbering Rows (SEQUENCE, OID) questions  (Terrence Brannon <metaperl@mac.com>)
Список pgsql-sql
On Sun, 16 Dec 2001, Terrence Brannon wrote:

> The Momjian book is excellent (in spite of some of the bonehead
> reviews on amazon.com). I just finished the "Numbering Rows"
> section and have a few questions. None of these were in the FAQ,
> BTW.
>
> 1 - are OIDs ever re-used if rows are deleted?

OIDs wraparound, but they don't just fill holes, so uniqueness
isn't guaranteed unless you have something like a unique index
on oid.

> 2 - for both SEQUENCE and OID, when might we expect them to
> rollover? Ie, what is the largest integer we can use for either
> of these?

oids are int4. In 7.1 and earlier sequences are int4, for 7.2 I
believe they're int8.

> 3 - What does one do once the rollover limit is reached if one
> wants to continue to add new row numbers?

If you're using oids, and you have a unique index on oid, you'll
get random failures insert if you happen to hit an already used oid.
If you don't have the unique index you'll get dups.

If you're using a sequence, you should be able to compress down
holes in the sequence and change rows that refer to rows of this one
and then point the sequence to give you the next available number.
A not terribly efficient way would be to make a new sequence, lock the
table you're compressing and any dependents, generate a table with the old
key value and a nextval from the sequence and then update both the
original table and dependents based on the mapping table and then set the
original table's sequence to get the following value and drop the new
sequence and table all in one transaction.



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

Предыдущее
От: Terrence Brannon
Дата:
Сообщение: Numbering Rows (SEQUENCE, OID) questions
Следующее
От: Terrence Brannon
Дата:
Сообщение: What happens if you delete a row containing a BLOB?