Thread: 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