unique ID across all columns
Hi,
I need a unique ID across all columns I create. Is it o.k. to
achive this by combining pg_attribute.attnum of a column together with
the OID of the table the column is in?
While the table's OID should be unique according to the manual, I have
found no hints about the uniqueness of attnum -- I removed and added
some columns and it seems that already used values are not used again.
Felix
Felix Kater wrote:
Hi,
I need a unique ID across all columns I create. Is it o.k. to
achive this by combining pg_attribute.attnum of a column together with
the OID of the table the column is in?While the table's OID should be unique according to the manual, I have
found no hints about the uniqueness of attnum -- I removed and added
some columns and it seems that already used values are not used again.
Yes, the table OID is unique, and pg_attribute.attnum is unique as well.
They are not reused, not even when columns are dropped.
--
Alvaro Herrera http://www.CommandPrompt.com/
The PostgreSQL Company - Command Prompt, Inc.
Alvaro Herrera <alvherre@commandprompt.com> writes:
Felix Kater wrote:
I need a unique ID across all columns I create. Is it o.k. to
achive this by combining pg_attribute.attnum of a column together with
the OID of the table the column is in?
Yes, the table OID is unique, and pg_attribute.attnum is unique as well.
They are not reused, not even when columns are dropped.
The OID could be re-used after the table is dropped, though. It's not
clear whether Felix needs uniqueness across time or just at any one
instant.
regards, tom lane