List prime key column names

From: "CN" <cnliou9(at)fastmail(dot)fm>
To: pgsql-general(at)postgresql(dot)org
Subject: List prime key column names
Date: 2004-06-17 05:42:47
Message-ID: 1087450967.12422.198600659@webmail.messagingengine.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

Hi!

I am trying to retrieve the column names that comprise primary key of a
table.
According to manual, pg_index.indkey is an array of indnatts whose usage
I am unaware of.

CREATE TABLE table1 (
PRIMARY KEY (c1,c2),
c1 SMALLINT,
c2 VARCHAR(10),
c3 VARCHAR(10)
)WITHOUT OIDS;

I need a SQL to list the following 2 rows:

c1
c2

The following SQL fails with error "syntax error at or near "ANY" at
character 214":

select attname
from pg_class,pg_index,pg_attribute
where relname='table1' and relkind='r' and relhaspkey
and indrelid=pg_class.oid and indisprimary
and attrelid=pg_class.oid and attnum ANY (indkey)

Helps will be much appreciated!

Regards,
CN

Browse pgsql-general by date

  From Date Subject
Next Message Scott Marlowe 2004-06-17 05:52:53 Re: why no answer? [Fwd: backup and restore just with use
Previous Message zuhans@iname.com 2004-06-17 05:28:02 Re: why no answer? [Fwd: backup and restore just with use