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

Started by Scot L. Harrisalmost 22 years ago2 messagesgeneral
Jump to latest
#1Scot L. Harris
webid@cfl.rr.com

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>

#2Tom Lane
tgl@sss.pgh.pa.us
In reply to: Scot L. Harris (#1)
Re: How to identify which column in a table is the primary key

"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