Thread: How to identify which column in a table is the primary key

How to identify which column in a table is the primary key

From
"Scot L. Harris"
Date:
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>


Re: How to identify which column in a table is the primary key

From
Tom Lane
Date:
"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