From: | "Alexander M(dot) Pravking" <fduch(at)antar(dot)bryansk(dot)ru> |
---|---|
To: | Mihail Nasedkin <m(dot)nasedkin(dot)perm(at)mail(dot)ru> |
Cc: | pgsql-ru-general(at)postgresql(dot)org |
Subject: | Re: OID's |
Date: | 2005-01-21 17:12:00 |
Message-ID: | 20050121171200.GA75942@dyatel.antar.bryansk.ru |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-ru-general |
On Fri, Jan 21, 2005 at 02:52:01PM +0500, Mihail Nasedkin wrote:
> NG> Хрянятся в таблице, как еще один столбец. Узнать перед вставкой -- вряд
> NG> ли, особенно в многопользовательской среде.
>
> Это понятно всем, но в какой системной таблице хранятся ВСЕ OID's, а
> не только этой таблицы. Есть таблица "pg_catalog.pg_attribute" с полем
> "attrelid", где хранятся все системные OID's, но нужны именно
> пользовательские OID's.
attrelid в данном случае - лишь ссылка на pg_catalog.pg_class.oid.
ВСЕ системные таблицы имеют столбец oid, и именно это его основное
назначение.
> NG> А зачем все это? Я вот с радостью отключил OID по дефолту в 8.0, ибо
> NG> надобность в них сомнительная.
> Мое мнение в том, что система уникальности записи в пределах всех баз
> данных конкретной инсталляции PostgreSQL независимо от принадлежности
> к конкретной таблице является интересным для нестандартных решений в
> приложениях. Конечно можно такую задачу решать каждому разработчику
> своими силами и это реализовано в других SQL-серверах.
> Однако, если уникальность уже реализована на системном уровне сервера - это большой
> плюс PostgreSQL. Я всегда использую OID's.
Чем не вариант - уникальность с помощью SEQUENCE, тоже на уровне сервера?
Конечно, между базами уникальности не получится, а вот между всеми
таблицами в базе - вполне. К тому же, если не ошибаюсь, oid - поле
32-битное, тогда как значение в SEQUENCE - 64-битное, что даёт бОльшую
гарантию, что значение не переполнится на больших объёмах данных.
И можно заранее достать значение, которое больше никем использовано не
будет.
--
Fduch M. Pravking
From | Date | Subject | |
---|---|---|---|
Next Message | Nick Gazaloff | 2005-01-21 17:14:29 | Re: pgsql-ru-general archive is available |
Previous Message | Oleg Bartunov | 2005-01-21 16:18:10 | pgsql-ru-general archive is available |