How to identify which column in a table is the primary key
I am using Postgresql 7.2.4 and php 4.2.2 to write some generic
functions to access and manipulate all tables in a database.
I have been looking for a way to identify the primary key defined in a
table. The closest I have found is a filed in the pg_class table that
is a boolean that tells me if that table has or every had a primary
key.
So given the table name is there a way to identify the column defined as
the primary key for that table?
--
Scot L. Harris <webid@cfl.rr.com>
"Scot L. Harris" <webid@cfl.rr.com> writes:
So given the table name is there a way to identify the column defined as
the primary key for that table?
You need to look in pg_index.
Note that the primary key could be a multicolumn index, so starting with
the assumption that there is "the column" is going to lead you on the
wrong track.
regards, tom lane